From 85ea18277be626584c6683cbb3f8d260c4a577da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A1=97=E8=A7=92=E5=B0=8F=E6=9E=97?= <1013335014@qq.com> Date: Sat, 5 Jul 2025 23:05:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes manifest.json | 12 + plugin/.DS_Store | Bin 0 -> 6148 bytes plugin/SmmEditView.js | 786 + plugin/locales/en.json | 113 + plugin/locales/vi.json | 113 + plugin/locales/zh.json | 113 + plugin/locales/zhtw.json | 113 + plugin/main.js | 561 + plugin/ob/MarkdownPostProcessor.js | 265 + plugin/ob/PreviewMindMap.js | 67 + plugin/ob/SmmSettingTab.js | 590 + plugin/ob/SuggestionModal.js | 40 + plugin/ob/constant.js | 74 + plugin/ob/metadataAndMarkdown.js | 121 + plugin/ob/utils.js | 65 + plugin/package-lock.json | 12736 ++++++++++++++++ plugin/package.json | 77 + plugin/shims-vue.d.ts | 5 + plugin/src/.DS_Store | Bin 0 -> 10244 bytes plugin/src/assets/.DS_Store | Bin 0 -> 10244 bytes plugin/src/assets/icon-font/.DS_Store | Bin 0 -> 6148 bytes plugin/src/assets/icon-font/iconfont.css | 551 + plugin/src/assets/icon-font/iconfont.ttf | Bin 0 -> 40980 bytes plugin/src/assets/icon-font/iconfont.woff | Bin 0 -> 25740 bytes plugin/src/assets/icon-font/iconfont.woff2 | Bin 0 -> 21868 bytes plugin/src/assets/img/.DS_Store | Bin 0 -> 6148 bytes plugin/src/assets/img/foramt/1.png | Bin 0 -> 1844 bytes plugin/src/assets/img/foramt/10.png | Bin 0 -> 2444 bytes plugin/src/assets/img/foramt/11.png | Bin 0 -> 1817 bytes plugin/src/assets/img/foramt/2.png | Bin 0 -> 1842 bytes plugin/src/assets/img/foramt/3.png | Bin 0 -> 2428 bytes plugin/src/assets/img/foramt/4.png | Bin 0 -> 2162 bytes plugin/src/assets/img/foramt/5.png | Bin 0 -> 1910 bytes plugin/src/assets/img/foramt/6.png | Bin 0 -> 2023 bytes plugin/src/assets/img/foramt/7.png | Bin 0 -> 1929 bytes plugin/src/assets/img/foramt/8.png | Bin 0 -> 1946 bytes plugin/src/assets/img/foramt/9.png | Bin 0 -> 2080 bytes .../img/structures/catalogOrganization.jpg | Bin 0 -> 6978 bytes plugin/src/assets/img/structures/fishbone.jpg | Bin 0 -> 6647 bytes .../src/assets/img/structures/fishbone2.jpg | Bin 0 -> 9948 bytes .../img/structures/logicalStructure.jpg | Bin 0 -> 5623 bytes .../img/structures/logicalStructureLeft.jpg | Bin 0 -> 5615 bytes plugin/src/assets/img/structures/mindMap.jpg | Bin 0 -> 6327 bytes .../img/structures/organizationStructure.jpg | Bin 0 -> 7014 bytes .../assets/img/structures/rightFishbone.jpg | Bin 0 -> 6529 bytes .../assets/img/structures/rightFishbone2.jpg | Bin 0 -> 9709 bytes plugin/src/assets/img/structures/timeline.jpg | Bin 0 -> 8442 bytes .../src/assets/img/structures/timeline2.jpg | Bin 0 -> 8119 bytes .../img/structures/verticalTimeline.jpg | Bin 0 -> 8505 bytes .../img/structures/verticalTimeline2.jpg | Bin 0 -> 7523 bytes .../img/structures/verticalTimeline3.jpg | Bin 0 -> 7031 bytes plugin/src/assets/img/图片加载失败.svg | 1 + plugin/src/assets/svg/business/-.svg | 1 + plugin/src/assets/svg/business/-_1.svg | 1 + plugin/src/assets/svg/business/-_10.svg | 1 + plugin/src/assets/svg/business/-_11.svg | 1 + plugin/src/assets/svg/business/-_12.svg | 1 + plugin/src/assets/svg/business/-_13.svg | 1 + plugin/src/assets/svg/business/-_14.svg | 1 + plugin/src/assets/svg/business/-_15.svg | 1 + plugin/src/assets/svg/business/-_16.svg | 1 + plugin/src/assets/svg/business/-_17.svg | 1 + plugin/src/assets/svg/business/-_18.svg | 1 + plugin/src/assets/svg/business/-_2.svg | 1 + plugin/src/assets/svg/business/-_3.svg | 1 + plugin/src/assets/svg/business/-_4.svg | 1 + plugin/src/assets/svg/business/-_5.svg | 1 + plugin/src/assets/svg/business/-_6.svg | 1 + plugin/src/assets/svg/business/-_7.svg | 1 + plugin/src/assets/svg/business/-_8.svg | 1 + plugin/src/assets/svg/business/-_9.svg | 1 + plugin/src/assets/svg/business/OAxitong.svg | 1 + .../assets/svg/business/changyongziyuan.svg | 1 + .../src/assets/svg/business/chuchashenpi.svg | 1 + .../src/assets/svg/business/fanwendengji.svg | 1 + .../svg/business/feizhengshiwendengji.svg | 1 + .../assets/svg/business/gongwenjiaohuan.svg | 1 + .../src/assets/svg/business/gongzuohuibao.svg | 1 + .../src/assets/svg/business/gudingzichan.svg | 1 + .../src/assets/svg/business/huiyiguanli.svg | 1 + .../src/assets/svg/business/huiyiyuding.svg | 1 + .../src/assets/svg/business/kaoqinguanli.svg | 1 + .../svg/business/qingxiujiashenqing.svg | 1 + .../src/assets/svg/business/sannianjihua.svg | 1 + .../src/assets/svg/business/tongzhifabu.svg | 1 + .../src/assets/svg/business/xiangmuguanli.svg | 1 + .../src/assets/svg/business/xinxitougao.svg | 1 + .../assets/svg/business/zhishichanquan.svg | 1 + .../svg/business/zhongxindongtaifabu.svg | 1 + .../src/assets/svg/business/zongheshenpi.svg | 1 + plugin/src/assets/svg/business/商务 | 0 plugin/src/assets/svg/education/DNA.svg | 1 + .../assets/svg/education/a-1-shilibiao.svg | 1 + .../assets/svg/education/a-10-yiliaoxiang.svg | 1 + .../svg/education/a-11-yiyongweishengzhi.svg | 1 + plugin/src/assets/svg/education/a-12-huxi.svg | 1 + .../src/assets/svg/education/a-13-xiguan.svg | 1 + .../assets/svg/education/a-14-zhutingqi.svg | 1 + .../src/assets/svg/education/a-15-bingdu.svg | 1 + .../src/assets/svg/education/a-16-yiyuan.svg | 1 + .../assets/svg/education/a-17-zhusheqi.svg | 1 + .../src/assets/svg/education/a-18-xiguan.svg | 1 + .../assets/svg/education/a-19guaizhang.svg | 1 + .../src/assets/svg/education/a-2-kouzhao.svg | 1 + .../src/assets/svg/education/a-20-shuye.svg | 1 + .../assets/svg/education/a-3-chuangkoutie.svg | 1 + plugin/src/assets/svg/education/a-4-lunyi.svg | 1 + .../src/assets/svg/education/a-5-mianqian.svg | 1 + .../src/assets/svg/education/a-6-jiancebi.svg | 1 + .../src/assets/svg/education/a-7-xinzang.svg | 1 + plugin/src/assets/svg/education/a-8-DNA.svg | 1 + .../assets/svg/education/a-9-tizhongcheng.svg | 1 + plugin/src/assets/svg/education/a-bitong1.svg | 1 + plugin/src/assets/svg/education/a-shu2.svg | 1 + plugin/src/assets/svg/education/a-shu4.svg | 1 + plugin/src/assets/svg/education/a-shu5.svg | 1 + plugin/src/assets/svg/education/a-shuben2.svg | 1 + plugin/src/assets/svg/education/a-shuben3.svg | 1 + plugin/src/assets/svg/education/a-shuben4.svg | 1 + .../src/assets/svg/education/a-xueshimao1.svg | 1 + plugin/src/assets/svg/education/baichui.svg | 1 + plugin/src/assets/svg/education/bijiben.svg | 1 + plugin/src/assets/svg/education/bitong.svg | 1 + plugin/src/assets/svg/education/chizi.svg | 1 + plugin/src/assets/svg/education/chongdian.svg | 1 + plugin/src/assets/svg/education/citie.svg | 1 + plugin/src/assets/svg/education/daima.svg | 1 + plugin/src/assets/svg/education/deng.svg | 1 + .../assets/svg/education/dianliushiyan.svg | 1 + plugin/src/assets/svg/education/diqiu.svg | 1 + plugin/src/assets/svg/education/diqiuyi.svg | 1 + plugin/src/assets/svg/education/fanyi.svg | 1 + .../src/assets/svg/education/gongwenbao.svg | 1 + plugin/src/assets/svg/education/heiban.svg | 1 + plugin/src/assets/svg/education/huiyi.svg | 1 + plugin/src/assets/svg/education/jiangbei.svg | 1 + .../src/assets/svg/education/jiaoxuelou.svg | 1 + plugin/src/assets/svg/education/jinpai.svg | 1 + plugin/src/assets/svg/education/jisuan.svg | 1 + plugin/src/assets/svg/education/jisuanqi.svg | 1 + plugin/src/assets/svg/education/naozhong.svg | 1 + plugin/src/assets/svg/education/qianbi.svg | 1 + plugin/src/assets/svg/education/sepan.svg | 1 + plugin/src/assets/svg/education/shiyan.svg | 1 + plugin/src/assets/svg/education/shouji.svg | 1 + plugin/src/assets/svg/education/shuben.svg | 1 + plugin/src/assets/svg/education/shuxie.svg | 1 + plugin/src/assets/svg/education/sousuo.svg | 1 + plugin/src/assets/svg/education/suanpan.svg | 1 + plugin/src/assets/svg/education/tianping.svg | 1 + .../src/assets/svg/education/tingzhenqi.svg | 1 + plugin/src/assets/svg/education/tiyu.svg | 1 + plugin/src/assets/svg/education/wenjian.svg | 1 + .../src/assets/svg/education/xianweijing.svg | 1 + .../src/assets/svg/education/xiaoheiban.svg | 1 + plugin/src/assets/svg/education/xiezizhuo.svg | 1 + plugin/src/assets/svg/education/xueshimao.svg | 1 + plugin/src/assets/svg/education/yuanpan.svg | 1 + plugin/src/assets/svg/education/教育 | 0 .../src/assets/svg/festival/celianggongju.svg | 1 + plugin/src/assets/svg/festival/chunjie.svg | 1 + plugin/src/assets/svg/festival/duanwujie.svg | 1 + plugin/src/assets/svg/festival/ertongjie.svg | 1 + plugin/src/assets/svg/festival/fuqinjie.svg | 1 + plugin/src/assets/svg/festival/ganenjie.svg | 1 + plugin/src/assets/svg/festival/gongju.svg | 1 + plugin/src/assets/svg/festival/hushijie.svg | 1 + plugin/src/assets/svg/festival/jiaoshijie.svg | 1 + plugin/src/assets/svg/festival/laodongjie.svg | 1 + plugin/src/assets/svg/festival/muqinjie.svg | 1 + plugin/src/assets/svg/festival/nvshengjie.svg | 1 + plugin/src/assets/svg/festival/qingrenjie.svg | 1 + plugin/src/assets/svg/festival/qixi.svg | 1 + .../src/assets/svg/festival/shengdanjie.svg | 1 + plugin/src/assets/svg/festival/shuang.svg | 1 + plugin/src/assets/svg/festival/yuandan.svg | 1 + .../src/assets/svg/festival/yuanxiaojie.svg | 1 + .../src/assets/svg/festival/zhongqiujie.svg | 1 + .../src/assets/svg/festival/zhongyangjie.svg | 1 + plugin/src/assets/svg/festival/节日 | 0 plugin/src/assets/svg/food/binggan.svg | 1 + plugin/src/assets/svg/food/binggun.svg | 1 + plugin/src/assets/svg/food/bingqilin.svg | 1 + plugin/src/assets/svg/food/boluo.svg | 1 + plugin/src/assets/svg/food/caomei.svg | 1 + plugin/src/assets/svg/food/celianggongju.svg | 1 + plugin/src/assets/svg/food/chengzi.svg | 1 + plugin/src/assets/svg/food/dangao.svg | 1 + plugin/src/assets/svg/food/fanqiejiang.svg | 1 + plugin/src/assets/svg/food/gongju.svg | 1 + plugin/src/assets/svg/food/hanbao.svg | 1 + plugin/src/assets/svg/food/jiandan.svg | 1 + plugin/src/assets/svg/food/kafeibei.svg | 1 + plugin/src/assets/svg/food/lajiao.svg | 1 + plugin/src/assets/svg/food/naixi.svg | 1 + plugin/src/assets/svg/food/niunai.svg | 1 + plugin/src/assets/svg/food/pingguo.svg | 1 + plugin/src/assets/svg/food/pisa.svg | 1 + plugin/src/assets/svg/food/putao.svg | 1 + plugin/src/assets/svg/food/quqi.svg | 1 + plugin/src/assets/svg/food/regou.svg | 1 + plugin/src/assets/svg/food/shutiao.svg | 1 + plugin/src/assets/svg/food/sudaqishui.svg | 1 + plugin/src/assets/svg/food/taozi.svg | 1 + plugin/src/assets/svg/food/tiantianquan.svg | 1 + plugin/src/assets/svg/food/xiangjiao.svg | 1 + plugin/src/assets/svg/food/xigua.svg | 1 + plugin/src/assets/svg/food/xilanhua.svg | 1 + plugin/src/assets/svg/food/yingtao.svg | 1 + plugin/src/assets/svg/food/yumi.svg | 1 + plugin/src/assets/svg/food/食物 | 0 .../src/assets/svg/medicine/a-1-shilibiao.svg | 1 + .../assets/svg/medicine/a-10-yiliaoxiang.svg | 1 + .../svg/medicine/a-11-yiyongweishengzhi.svg | 1 + plugin/src/assets/svg/medicine/a-12-huxi.svg | 1 + .../src/assets/svg/medicine/a-13-xiguan.svg | 1 + .../assets/svg/medicine/a-14-zhutingqi.svg | 1 + .../src/assets/svg/medicine/a-15-bingdu.svg | 1 + .../src/assets/svg/medicine/a-16-yiyuan.svg | 1 + .../src/assets/svg/medicine/a-17-zhusheqi.svg | 1 + .../src/assets/svg/medicine/a-18-xiguan.svg | 1 + .../src/assets/svg/medicine/a-19guaizhang.svg | 1 + .../src/assets/svg/medicine/a-2-kouzhao.svg | 1 + plugin/src/assets/svg/medicine/a-20-shuye.svg | 1 + .../assets/svg/medicine/a-3-chuangkoutie.svg | 1 + plugin/src/assets/svg/medicine/a-4-lunyi.svg | 1 + .../src/assets/svg/medicine/a-5-mianqian.svg | 1 + .../src/assets/svg/medicine/a-6-jiancebi.svg | 1 + .../src/assets/svg/medicine/a-7-xinzang.svg | 1 + plugin/src/assets/svg/medicine/a-8-DNA.svg | 1 + .../assets/svg/medicine/a-9-tizhongcheng.svg | 1 + plugin/src/assets/svg/medicine/医疗 | 0 plugin/src/assets/svg/tools/gaizhui.svg | 1 + plugin/src/assets/svg/tools/ziyuan.svg | 1 + plugin/src/assets/svg/tools/ziyuan_1.svg | 1 + plugin/src/assets/svg/tools/ziyuan_10.svg | 1 + plugin/src/assets/svg/tools/ziyuan_11.svg | 1 + plugin/src/assets/svg/tools/ziyuan_12.svg | 1 + plugin/src/assets/svg/tools/ziyuan_13.svg | 1 + plugin/src/assets/svg/tools/ziyuan_14.svg | 1 + plugin/src/assets/svg/tools/ziyuan_15.svg | 1 + plugin/src/assets/svg/tools/ziyuan_16.svg | 1 + plugin/src/assets/svg/tools/ziyuan_17.svg | 1 + plugin/src/assets/svg/tools/ziyuan_18.svg | 1 + plugin/src/assets/svg/tools/ziyuan_2.svg | 1 + plugin/src/assets/svg/tools/ziyuan_3.svg | 1 + plugin/src/assets/svg/tools/ziyuan_4.svg | 1 + plugin/src/assets/svg/tools/ziyuan_5.svg | 1 + plugin/src/assets/svg/tools/ziyuan_6.svg | 1 + plugin/src/assets/svg/tools/ziyuan_7.svg | 1 + plugin/src/assets/svg/tools/ziyuan_8.svg | 1 + plugin/src/assets/svg/tools/ziyuan_9.svg | 1 + plugin/src/assets/svg/tools/工具 | 0 plugin/src/assets/svg/travel/banshouli.svg | 1 + .../src/assets/svg/travel/chuhangshijian.svg | 1 + plugin/src/assets/svg/travel/ditu.svg | 1 + plugin/src/assets/svg/travel/fengjing.svg | 1 + plugin/src/assets/svg/travel/gonglve.svg | 1 + plugin/src/assets/svg/travel/hangli.svg | 1 + plugin/src/assets/svg/travel/huafei.svg | 1 + plugin/src/assets/svg/travel/jipiao.svg | 1 + plugin/src/assets/svg/travel/jiudian.svg | 1 + plugin/src/assets/svg/travel/lvban.svg | 1 + plugin/src/assets/svg/travel/meishi.svg | 1 + plugin/src/assets/svg/travel/menpiao.svg | 1 + plugin/src/assets/svg/travel/paishe.svg | 1 + plugin/src/assets/svg/travel/qianzheng.svg | 1 + plugin/src/assets/svg/travel/shangdian.svg | 1 + plugin/src/assets/svg/travel/tianqi.svg | 1 + .../src/assets/svg/travel/youlechangsuo.svg | 1 + plugin/src/assets/svg/travel/yuyanfanyi.svg | 1 + .../src/assets/svg/travel/zhuyishixiang.svg | 1 + plugin/src/assets/svg/travel/zuche.svg | 1 + plugin/src/assets/svg/travel/旅行 | 0 plugin/src/components/ImgUpload/index.vue | 181 + plugin/src/components/ImgUpload/style.less | 92 + plugin/src/config/constant.js | 170 + plugin/src/config/en.js | 619 + plugin/src/config/icon.js | 191 + plugin/src/config/icons.js | 5 + plugin/src/config/image.js | 1329 ++ plugin/src/config/index.js | 211 + plugin/src/config/vi.js | 624 + plugin/src/config/zh.js | 721 + plugin/src/config/zhtw.js | 618 + plugin/src/i18n.js | 12 + plugin/src/lang/en_us.js | 636 + plugin/src/lang/index.js | 11 + plugin/src/lang/vi_vn.js | 637 + plugin/src/lang/zh_cn.js | 611 + plugin/src/lang/zh_tw.js | 611 + plugin/src/main.js | 112 + plugin/src/mixins/dark.js | 33 + plugin/src/pages/.DS_Store | Bin 0 -> 6148 bytes plugin/src/pages/Edit/.DS_Store | Bin 0 -> 6148 bytes plugin/src/pages/Edit/Index.vue | 500 + .../Edit/components/AssociativeLineStyle.vue | 343 + .../src/pages/Edit/components/BaseStyle.vue | 1274 ++ plugin/src/pages/Edit/components/Color.vue | 116 + .../components/ConfigImportOutputDropdown.vue | 124 + .../src/pages/Edit/components/Contextmenu.vue | 640 + plugin/src/pages/Edit/components/Count.vue | 116 + .../src/pages/Edit/components/Demonstrate.vue | 224 + plugin/src/pages/Edit/components/Edit.vue | 834 + plugin/src/pages/Edit/components/Export.vue | 729 + .../pages/Edit/components/FormulaSidebar.vue | 208 + plugin/src/pages/Edit/components/Guide.vue | 126 + plugin/src/pages/Edit/components/Import.vue | 315 + .../src/pages/Edit/components/MouseAction.vue | 95 + .../src/pages/Edit/components/Navigator.vue | 234 + .../Edit/components/NavigatorToolbar.vue | 253 + .../pages/Edit/components/NodeHyperlink.vue | 405 + plugin/src/pages/Edit/components/NodeIcon.vue | 152 + .../pages/Edit/components/NodeIconSidebar.vue | 354 + .../pages/Edit/components/NodeIconToolbar.vue | 267 + .../src/pages/Edit/components/NodeImage.vue | 317 + .../components/NodeImgPlacementToolbar.vue | 203 + .../pages/Edit/components/NodeImgPreview.vue | 57 + plugin/src/pages/Edit/components/NodeNote.vue | 145 + .../Edit/components/NodeNoteContentShow.vue | 179 + .../pages/Edit/components/NodeNoteSidebar.vue | 96 + .../pages/Edit/components/NodeOuterFrame.vue | 584 + plugin/src/pages/Edit/components/NodeTag.vue | 193 + .../pages/Edit/components/NodeTagStyle.vue | 257 + plugin/src/pages/Edit/components/Outline.vue | 344 + .../src/pages/Edit/components/OutlineEdit.vue | 425 + .../pages/Edit/components/OutlineSidebar.vue | 92 + .../pages/Edit/components/RichTextToolbar.vue | 394 + plugin/src/pages/Edit/components/Scale.vue | 161 + .../src/pages/Edit/components/Scrollbar.vue | 166 + plugin/src/pages/Edit/components/Search.vue | 377 + plugin/src/pages/Edit/components/Setting.vue | 620 + .../src/pages/Edit/components/ShortcutKey.vue | 119 + plugin/src/pages/Edit/components/Sidebar.vue | 146 + .../pages/Edit/components/SidebarTrigger.vue | 222 + .../src/pages/Edit/components/Structure.vue | 145 + plugin/src/pages/Edit/components/Style.vue | 832 + plugin/src/pages/Edit/components/Theme.vue | 273 + plugin/src/pages/Edit/components/Toolbar.vue | 274 + .../Edit/components/ToolbarNodeBtnList.vue | 364 + plugin/src/pages/PreviewMode/Index.vue | 329 + .../pages/PreviewMode/components/Toolbar.vue | 222 + plugin/src/store.js | 60 + plugin/src/style/common.less | 11 + plugin/src/style/element-variables.scss | 37 + plugin/src/style/outlineTree.less | 62 + plugin/src/style/sidebar.less | 178 + plugin/src/utils/handleClipboardText.js | 92 + plugin/src/utils/index.js | 285 + plugin/style.css | 24 + plugin/tsconfig.json | 13 + plugin/webpack.config.js | 113 + 353 files changed, 39762 insertions(+) create mode 100644 .DS_Store create mode 100644 manifest.json create mode 100644 plugin/.DS_Store create mode 100644 plugin/SmmEditView.js create mode 100644 plugin/locales/en.json create mode 100644 plugin/locales/vi.json create mode 100644 plugin/locales/zh.json create mode 100644 plugin/locales/zhtw.json create mode 100644 plugin/main.js create mode 100644 plugin/ob/MarkdownPostProcessor.js create mode 100644 plugin/ob/PreviewMindMap.js create mode 100644 plugin/ob/SmmSettingTab.js create mode 100644 plugin/ob/SuggestionModal.js create mode 100644 plugin/ob/constant.js create mode 100644 plugin/ob/metadataAndMarkdown.js create mode 100644 plugin/ob/utils.js create mode 100644 plugin/package-lock.json create mode 100644 plugin/package.json create mode 100644 plugin/shims-vue.d.ts create mode 100644 plugin/src/.DS_Store create mode 100644 plugin/src/assets/.DS_Store create mode 100644 plugin/src/assets/icon-font/.DS_Store create mode 100644 plugin/src/assets/icon-font/iconfont.css create mode 100644 plugin/src/assets/icon-font/iconfont.ttf create mode 100644 plugin/src/assets/icon-font/iconfont.woff create mode 100644 plugin/src/assets/icon-font/iconfont.woff2 create mode 100644 plugin/src/assets/img/.DS_Store create mode 100644 plugin/src/assets/img/foramt/1.png create mode 100644 plugin/src/assets/img/foramt/10.png create mode 100644 plugin/src/assets/img/foramt/11.png create mode 100644 plugin/src/assets/img/foramt/2.png create mode 100644 plugin/src/assets/img/foramt/3.png create mode 100644 plugin/src/assets/img/foramt/4.png create mode 100644 plugin/src/assets/img/foramt/5.png create mode 100644 plugin/src/assets/img/foramt/6.png create mode 100644 plugin/src/assets/img/foramt/7.png create mode 100644 plugin/src/assets/img/foramt/8.png create mode 100644 plugin/src/assets/img/foramt/9.png create mode 100644 plugin/src/assets/img/structures/catalogOrganization.jpg create mode 100644 plugin/src/assets/img/structures/fishbone.jpg create mode 100644 plugin/src/assets/img/structures/fishbone2.jpg create mode 100644 plugin/src/assets/img/structures/logicalStructure.jpg create mode 100644 plugin/src/assets/img/structures/logicalStructureLeft.jpg create mode 100644 plugin/src/assets/img/structures/mindMap.jpg create mode 100644 plugin/src/assets/img/structures/organizationStructure.jpg create mode 100644 plugin/src/assets/img/structures/rightFishbone.jpg create mode 100644 plugin/src/assets/img/structures/rightFishbone2.jpg create mode 100644 plugin/src/assets/img/structures/timeline.jpg create mode 100644 plugin/src/assets/img/structures/timeline2.jpg create mode 100644 plugin/src/assets/img/structures/verticalTimeline.jpg create mode 100644 plugin/src/assets/img/structures/verticalTimeline2.jpg create mode 100644 plugin/src/assets/img/structures/verticalTimeline3.jpg create mode 100644 plugin/src/assets/img/图片加载失败.svg create mode 100644 plugin/src/assets/svg/business/-.svg create mode 100644 plugin/src/assets/svg/business/-_1.svg create mode 100644 plugin/src/assets/svg/business/-_10.svg create mode 100644 plugin/src/assets/svg/business/-_11.svg create mode 100644 plugin/src/assets/svg/business/-_12.svg create mode 100644 plugin/src/assets/svg/business/-_13.svg create mode 100644 plugin/src/assets/svg/business/-_14.svg create mode 100644 plugin/src/assets/svg/business/-_15.svg create mode 100644 plugin/src/assets/svg/business/-_16.svg create mode 100644 plugin/src/assets/svg/business/-_17.svg create mode 100644 plugin/src/assets/svg/business/-_18.svg create mode 100644 plugin/src/assets/svg/business/-_2.svg create mode 100644 plugin/src/assets/svg/business/-_3.svg create mode 100644 plugin/src/assets/svg/business/-_4.svg create mode 100644 plugin/src/assets/svg/business/-_5.svg create mode 100644 plugin/src/assets/svg/business/-_6.svg create mode 100644 plugin/src/assets/svg/business/-_7.svg create mode 100644 plugin/src/assets/svg/business/-_8.svg create mode 100644 plugin/src/assets/svg/business/-_9.svg create mode 100644 plugin/src/assets/svg/business/OAxitong.svg create mode 100644 plugin/src/assets/svg/business/changyongziyuan.svg create mode 100644 plugin/src/assets/svg/business/chuchashenpi.svg create mode 100644 plugin/src/assets/svg/business/fanwendengji.svg create mode 100644 plugin/src/assets/svg/business/feizhengshiwendengji.svg create mode 100644 plugin/src/assets/svg/business/gongwenjiaohuan.svg create mode 100644 plugin/src/assets/svg/business/gongzuohuibao.svg create mode 100644 plugin/src/assets/svg/business/gudingzichan.svg create mode 100644 plugin/src/assets/svg/business/huiyiguanli.svg create mode 100644 plugin/src/assets/svg/business/huiyiyuding.svg create mode 100644 plugin/src/assets/svg/business/kaoqinguanli.svg create mode 100644 plugin/src/assets/svg/business/qingxiujiashenqing.svg create mode 100644 plugin/src/assets/svg/business/sannianjihua.svg create mode 100644 plugin/src/assets/svg/business/tongzhifabu.svg create mode 100644 plugin/src/assets/svg/business/xiangmuguanli.svg create mode 100644 plugin/src/assets/svg/business/xinxitougao.svg create mode 100644 plugin/src/assets/svg/business/zhishichanquan.svg create mode 100644 plugin/src/assets/svg/business/zhongxindongtaifabu.svg create mode 100644 plugin/src/assets/svg/business/zongheshenpi.svg create mode 100644 plugin/src/assets/svg/business/商务 create mode 100644 plugin/src/assets/svg/education/DNA.svg create mode 100644 plugin/src/assets/svg/education/a-1-shilibiao.svg create mode 100644 plugin/src/assets/svg/education/a-10-yiliaoxiang.svg create mode 100644 plugin/src/assets/svg/education/a-11-yiyongweishengzhi.svg create mode 100644 plugin/src/assets/svg/education/a-12-huxi.svg create mode 100644 plugin/src/assets/svg/education/a-13-xiguan.svg create mode 100644 plugin/src/assets/svg/education/a-14-zhutingqi.svg create mode 100644 plugin/src/assets/svg/education/a-15-bingdu.svg create mode 100644 plugin/src/assets/svg/education/a-16-yiyuan.svg create mode 100644 plugin/src/assets/svg/education/a-17-zhusheqi.svg create mode 100644 plugin/src/assets/svg/education/a-18-xiguan.svg create mode 100644 plugin/src/assets/svg/education/a-19guaizhang.svg create mode 100644 plugin/src/assets/svg/education/a-2-kouzhao.svg create mode 100644 plugin/src/assets/svg/education/a-20-shuye.svg create mode 100644 plugin/src/assets/svg/education/a-3-chuangkoutie.svg create mode 100644 plugin/src/assets/svg/education/a-4-lunyi.svg create mode 100644 plugin/src/assets/svg/education/a-5-mianqian.svg create mode 100644 plugin/src/assets/svg/education/a-6-jiancebi.svg create mode 100644 plugin/src/assets/svg/education/a-7-xinzang.svg create mode 100644 plugin/src/assets/svg/education/a-8-DNA.svg create mode 100644 plugin/src/assets/svg/education/a-9-tizhongcheng.svg create mode 100644 plugin/src/assets/svg/education/a-bitong1.svg create mode 100644 plugin/src/assets/svg/education/a-shu2.svg create mode 100644 plugin/src/assets/svg/education/a-shu4.svg create mode 100644 plugin/src/assets/svg/education/a-shu5.svg create mode 100644 plugin/src/assets/svg/education/a-shuben2.svg create mode 100644 plugin/src/assets/svg/education/a-shuben3.svg create mode 100644 plugin/src/assets/svg/education/a-shuben4.svg create mode 100644 plugin/src/assets/svg/education/a-xueshimao1.svg create mode 100644 plugin/src/assets/svg/education/baichui.svg create mode 100644 plugin/src/assets/svg/education/bijiben.svg create mode 100644 plugin/src/assets/svg/education/bitong.svg create mode 100644 plugin/src/assets/svg/education/chizi.svg create mode 100644 plugin/src/assets/svg/education/chongdian.svg create mode 100644 plugin/src/assets/svg/education/citie.svg create mode 100644 plugin/src/assets/svg/education/daima.svg create mode 100644 plugin/src/assets/svg/education/deng.svg create mode 100644 plugin/src/assets/svg/education/dianliushiyan.svg create mode 100644 plugin/src/assets/svg/education/diqiu.svg create mode 100644 plugin/src/assets/svg/education/diqiuyi.svg create mode 100644 plugin/src/assets/svg/education/fanyi.svg create mode 100644 plugin/src/assets/svg/education/gongwenbao.svg create mode 100644 plugin/src/assets/svg/education/heiban.svg create mode 100644 plugin/src/assets/svg/education/huiyi.svg create mode 100644 plugin/src/assets/svg/education/jiangbei.svg create mode 100644 plugin/src/assets/svg/education/jiaoxuelou.svg create mode 100644 plugin/src/assets/svg/education/jinpai.svg create mode 100644 plugin/src/assets/svg/education/jisuan.svg create mode 100644 plugin/src/assets/svg/education/jisuanqi.svg create mode 100644 plugin/src/assets/svg/education/naozhong.svg create mode 100644 plugin/src/assets/svg/education/qianbi.svg create mode 100644 plugin/src/assets/svg/education/sepan.svg create mode 100644 plugin/src/assets/svg/education/shiyan.svg create mode 100644 plugin/src/assets/svg/education/shouji.svg create mode 100644 plugin/src/assets/svg/education/shuben.svg create mode 100644 plugin/src/assets/svg/education/shuxie.svg create mode 100644 plugin/src/assets/svg/education/sousuo.svg create mode 100644 plugin/src/assets/svg/education/suanpan.svg create mode 100644 plugin/src/assets/svg/education/tianping.svg create mode 100644 plugin/src/assets/svg/education/tingzhenqi.svg create mode 100644 plugin/src/assets/svg/education/tiyu.svg create mode 100644 plugin/src/assets/svg/education/wenjian.svg create mode 100644 plugin/src/assets/svg/education/xianweijing.svg create mode 100644 plugin/src/assets/svg/education/xiaoheiban.svg create mode 100644 plugin/src/assets/svg/education/xiezizhuo.svg create mode 100644 plugin/src/assets/svg/education/xueshimao.svg create mode 100644 plugin/src/assets/svg/education/yuanpan.svg create mode 100644 plugin/src/assets/svg/education/教育 create mode 100644 plugin/src/assets/svg/festival/celianggongju.svg create mode 100644 plugin/src/assets/svg/festival/chunjie.svg create mode 100644 plugin/src/assets/svg/festival/duanwujie.svg create mode 100644 plugin/src/assets/svg/festival/ertongjie.svg create mode 100644 plugin/src/assets/svg/festival/fuqinjie.svg create mode 100644 plugin/src/assets/svg/festival/ganenjie.svg create mode 100644 plugin/src/assets/svg/festival/gongju.svg create mode 100644 plugin/src/assets/svg/festival/hushijie.svg create mode 100644 plugin/src/assets/svg/festival/jiaoshijie.svg create mode 100644 plugin/src/assets/svg/festival/laodongjie.svg create mode 100644 plugin/src/assets/svg/festival/muqinjie.svg create mode 100644 plugin/src/assets/svg/festival/nvshengjie.svg create mode 100644 plugin/src/assets/svg/festival/qingrenjie.svg create mode 100644 plugin/src/assets/svg/festival/qixi.svg create mode 100644 plugin/src/assets/svg/festival/shengdanjie.svg create mode 100644 plugin/src/assets/svg/festival/shuang.svg create mode 100644 plugin/src/assets/svg/festival/yuandan.svg create mode 100644 plugin/src/assets/svg/festival/yuanxiaojie.svg create mode 100644 plugin/src/assets/svg/festival/zhongqiujie.svg create mode 100644 plugin/src/assets/svg/festival/zhongyangjie.svg create mode 100644 plugin/src/assets/svg/festival/节日 create mode 100644 plugin/src/assets/svg/food/binggan.svg create mode 100644 plugin/src/assets/svg/food/binggun.svg create mode 100644 plugin/src/assets/svg/food/bingqilin.svg create mode 100644 plugin/src/assets/svg/food/boluo.svg create mode 100644 plugin/src/assets/svg/food/caomei.svg create mode 100644 plugin/src/assets/svg/food/celianggongju.svg create mode 100644 plugin/src/assets/svg/food/chengzi.svg create mode 100644 plugin/src/assets/svg/food/dangao.svg create mode 100644 plugin/src/assets/svg/food/fanqiejiang.svg create mode 100644 plugin/src/assets/svg/food/gongju.svg create mode 100644 plugin/src/assets/svg/food/hanbao.svg create mode 100644 plugin/src/assets/svg/food/jiandan.svg create mode 100644 plugin/src/assets/svg/food/kafeibei.svg create mode 100644 plugin/src/assets/svg/food/lajiao.svg create mode 100644 plugin/src/assets/svg/food/naixi.svg create mode 100644 plugin/src/assets/svg/food/niunai.svg create mode 100644 plugin/src/assets/svg/food/pingguo.svg create mode 100644 plugin/src/assets/svg/food/pisa.svg create mode 100644 plugin/src/assets/svg/food/putao.svg create mode 100644 plugin/src/assets/svg/food/quqi.svg create mode 100644 plugin/src/assets/svg/food/regou.svg create mode 100644 plugin/src/assets/svg/food/shutiao.svg create mode 100644 plugin/src/assets/svg/food/sudaqishui.svg create mode 100644 plugin/src/assets/svg/food/taozi.svg create mode 100644 plugin/src/assets/svg/food/tiantianquan.svg create mode 100644 plugin/src/assets/svg/food/xiangjiao.svg create mode 100644 plugin/src/assets/svg/food/xigua.svg create mode 100644 plugin/src/assets/svg/food/xilanhua.svg create mode 100644 plugin/src/assets/svg/food/yingtao.svg create mode 100644 plugin/src/assets/svg/food/yumi.svg create mode 100644 plugin/src/assets/svg/food/食物 create mode 100644 plugin/src/assets/svg/medicine/a-1-shilibiao.svg create mode 100644 plugin/src/assets/svg/medicine/a-10-yiliaoxiang.svg create mode 100644 plugin/src/assets/svg/medicine/a-11-yiyongweishengzhi.svg create mode 100644 plugin/src/assets/svg/medicine/a-12-huxi.svg create mode 100644 plugin/src/assets/svg/medicine/a-13-xiguan.svg create mode 100644 plugin/src/assets/svg/medicine/a-14-zhutingqi.svg create mode 100644 plugin/src/assets/svg/medicine/a-15-bingdu.svg create mode 100644 plugin/src/assets/svg/medicine/a-16-yiyuan.svg create mode 100644 plugin/src/assets/svg/medicine/a-17-zhusheqi.svg create mode 100644 plugin/src/assets/svg/medicine/a-18-xiguan.svg create mode 100644 plugin/src/assets/svg/medicine/a-19guaizhang.svg create mode 100644 plugin/src/assets/svg/medicine/a-2-kouzhao.svg create mode 100644 plugin/src/assets/svg/medicine/a-20-shuye.svg create mode 100644 plugin/src/assets/svg/medicine/a-3-chuangkoutie.svg create mode 100644 plugin/src/assets/svg/medicine/a-4-lunyi.svg create mode 100644 plugin/src/assets/svg/medicine/a-5-mianqian.svg create mode 100644 plugin/src/assets/svg/medicine/a-6-jiancebi.svg create mode 100644 plugin/src/assets/svg/medicine/a-7-xinzang.svg create mode 100644 plugin/src/assets/svg/medicine/a-8-DNA.svg create mode 100644 plugin/src/assets/svg/medicine/a-9-tizhongcheng.svg create mode 100644 plugin/src/assets/svg/medicine/医疗 create mode 100644 plugin/src/assets/svg/tools/gaizhui.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_1.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_10.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_11.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_12.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_13.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_14.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_15.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_16.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_17.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_18.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_2.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_3.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_4.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_5.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_6.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_7.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_8.svg create mode 100644 plugin/src/assets/svg/tools/ziyuan_9.svg create mode 100644 plugin/src/assets/svg/tools/工具 create mode 100644 plugin/src/assets/svg/travel/banshouli.svg create mode 100644 plugin/src/assets/svg/travel/chuhangshijian.svg create mode 100644 plugin/src/assets/svg/travel/ditu.svg create mode 100644 plugin/src/assets/svg/travel/fengjing.svg create mode 100644 plugin/src/assets/svg/travel/gonglve.svg create mode 100644 plugin/src/assets/svg/travel/hangli.svg create mode 100644 plugin/src/assets/svg/travel/huafei.svg create mode 100644 plugin/src/assets/svg/travel/jipiao.svg create mode 100644 plugin/src/assets/svg/travel/jiudian.svg create mode 100644 plugin/src/assets/svg/travel/lvban.svg create mode 100644 plugin/src/assets/svg/travel/meishi.svg create mode 100644 plugin/src/assets/svg/travel/menpiao.svg create mode 100644 plugin/src/assets/svg/travel/paishe.svg create mode 100644 plugin/src/assets/svg/travel/qianzheng.svg create mode 100644 plugin/src/assets/svg/travel/shangdian.svg create mode 100644 plugin/src/assets/svg/travel/tianqi.svg create mode 100644 plugin/src/assets/svg/travel/youlechangsuo.svg create mode 100644 plugin/src/assets/svg/travel/yuyanfanyi.svg create mode 100644 plugin/src/assets/svg/travel/zhuyishixiang.svg create mode 100644 plugin/src/assets/svg/travel/zuche.svg create mode 100644 plugin/src/assets/svg/travel/旅行 create mode 100644 plugin/src/components/ImgUpload/index.vue create mode 100644 plugin/src/components/ImgUpload/style.less create mode 100644 plugin/src/config/constant.js create mode 100644 plugin/src/config/en.js create mode 100644 plugin/src/config/icon.js create mode 100644 plugin/src/config/icons.js create mode 100644 plugin/src/config/image.js create mode 100644 plugin/src/config/index.js create mode 100644 plugin/src/config/vi.js create mode 100644 plugin/src/config/zh.js create mode 100644 plugin/src/config/zhtw.js create mode 100644 plugin/src/i18n.js create mode 100644 plugin/src/lang/en_us.js create mode 100644 plugin/src/lang/index.js create mode 100644 plugin/src/lang/vi_vn.js create mode 100644 plugin/src/lang/zh_cn.js create mode 100644 plugin/src/lang/zh_tw.js create mode 100644 plugin/src/main.js create mode 100644 plugin/src/mixins/dark.js create mode 100644 plugin/src/pages/.DS_Store create mode 100644 plugin/src/pages/Edit/.DS_Store create mode 100644 plugin/src/pages/Edit/Index.vue create mode 100644 plugin/src/pages/Edit/components/AssociativeLineStyle.vue create mode 100644 plugin/src/pages/Edit/components/BaseStyle.vue create mode 100644 plugin/src/pages/Edit/components/Color.vue create mode 100644 plugin/src/pages/Edit/components/ConfigImportOutputDropdown.vue create mode 100644 plugin/src/pages/Edit/components/Contextmenu.vue create mode 100644 plugin/src/pages/Edit/components/Count.vue create mode 100644 plugin/src/pages/Edit/components/Demonstrate.vue create mode 100644 plugin/src/pages/Edit/components/Edit.vue create mode 100644 plugin/src/pages/Edit/components/Export.vue create mode 100644 plugin/src/pages/Edit/components/FormulaSidebar.vue create mode 100644 plugin/src/pages/Edit/components/Guide.vue create mode 100644 plugin/src/pages/Edit/components/Import.vue create mode 100644 plugin/src/pages/Edit/components/MouseAction.vue create mode 100644 plugin/src/pages/Edit/components/Navigator.vue create mode 100644 plugin/src/pages/Edit/components/NavigatorToolbar.vue create mode 100644 plugin/src/pages/Edit/components/NodeHyperlink.vue create mode 100644 plugin/src/pages/Edit/components/NodeIcon.vue create mode 100644 plugin/src/pages/Edit/components/NodeIconSidebar.vue create mode 100644 plugin/src/pages/Edit/components/NodeIconToolbar.vue create mode 100644 plugin/src/pages/Edit/components/NodeImage.vue create mode 100644 plugin/src/pages/Edit/components/NodeImgPlacementToolbar.vue create mode 100644 plugin/src/pages/Edit/components/NodeImgPreview.vue create mode 100644 plugin/src/pages/Edit/components/NodeNote.vue create mode 100644 plugin/src/pages/Edit/components/NodeNoteContentShow.vue create mode 100644 plugin/src/pages/Edit/components/NodeNoteSidebar.vue create mode 100644 plugin/src/pages/Edit/components/NodeOuterFrame.vue create mode 100644 plugin/src/pages/Edit/components/NodeTag.vue create mode 100644 plugin/src/pages/Edit/components/NodeTagStyle.vue create mode 100644 plugin/src/pages/Edit/components/Outline.vue create mode 100644 plugin/src/pages/Edit/components/OutlineEdit.vue create mode 100644 plugin/src/pages/Edit/components/OutlineSidebar.vue create mode 100644 plugin/src/pages/Edit/components/RichTextToolbar.vue create mode 100644 plugin/src/pages/Edit/components/Scale.vue create mode 100644 plugin/src/pages/Edit/components/Scrollbar.vue create mode 100644 plugin/src/pages/Edit/components/Search.vue create mode 100644 plugin/src/pages/Edit/components/Setting.vue create mode 100644 plugin/src/pages/Edit/components/ShortcutKey.vue create mode 100644 plugin/src/pages/Edit/components/Sidebar.vue create mode 100644 plugin/src/pages/Edit/components/SidebarTrigger.vue create mode 100644 plugin/src/pages/Edit/components/Structure.vue create mode 100644 plugin/src/pages/Edit/components/Style.vue create mode 100644 plugin/src/pages/Edit/components/Theme.vue create mode 100644 plugin/src/pages/Edit/components/Toolbar.vue create mode 100644 plugin/src/pages/Edit/components/ToolbarNodeBtnList.vue create mode 100644 plugin/src/pages/PreviewMode/Index.vue create mode 100644 plugin/src/pages/PreviewMode/components/Toolbar.vue create mode 100644 plugin/src/store.js create mode 100644 plugin/src/style/common.less create mode 100644 plugin/src/style/element-variables.scss create mode 100644 plugin/src/style/outlineTree.less create mode 100644 plugin/src/style/sidebar.less create mode 100644 plugin/src/utils/handleClipboardText.js create mode 100644 plugin/src/utils/index.js create mode 100644 plugin/style.css create mode 100644 plugin/tsconfig.json create mode 100644 plugin/webpack.config.js diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ea1dbc89a99a5de13eefc214619059789ff4f1b8 GIT binary patch literal 6148 zcmeHK%}&BV5Z(oZC1AoqqsL9Wk_bv9#!IdE0@mn34N^;>v2+`Lr4gn>#-<)QgRi$=$9WI(>VEQv@!Mx;Y#-`}Gf1^!@Isl3osIwo{u<^K5lvbML5m9rQwRt9hjG$thVjn7|zvGg}HeRp(0d zq9owscuzDM=96Vb>;B=X_`E+KGVn(jkmmyjm1r4^HL9Zn8dU-SX27ikY*|al9B$Au7;A(P5UNuFbt*L_ z2G!}{=O)fF7;Dt&gqq@mnw6=kP^elR=I1J$P)j4W$N(}h%RpLpOY;6d{JQ?1O~M{B zfDHUA256??G;G+Cxm)KpC+}JgdI>5;#>E=nQovAGF~rKNcpX#;__;IyErYQ}@POct NfT95#WMH8TyaE==X-@zE literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..5134fbb --- /dev/null +++ b/manifest.json @@ -0,0 +1,12 @@ +{ + "id": "obsidian-simple-mind-map", + "name": "SimpleMindMap", + "version": "0.1.0", + "minAppVersion": "0.15.0", + "description": "simple-mind-map official plugin for obsidian", + "author": "wanglin", + "authorUrl": "https://github.com/wanglin2", + "fundingUrl": "", + "isDesktopOnly": false, + "permissions": ["files"] +} diff --git a/plugin/.DS_Store b/plugin/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1b3624311855b17c5c575976da4219a5feeb6721 GIT binary patch literal 6148 zcmeHK%}T>S5T0$TCWz33g5DOq7Hs`P@e-=OfDt{Y)TAjIT(i=&_D~AB>kIiJK94iI zn?kAHL{w&A_S>DE*<`*AyBPow?P1aar~`n9N?7r+`9x@*bWSSHvVbVe8VY)lCwW)J zdd`~-zmWmjyCqPdp$ie>bpN!X*R9}0Y&X;zs*pn;y74G~ij|Jh#brN=FVfzqQ(ryS*&s@@Uf%?yNe^AFFVig1 zqqZJqNp508JK_1h->Gkm$F05nhHP!`Od4|B+HM{+ zzfAlzjjT8<;T1bBoiammb*AUApDCT)p`~1)3}j>mm;q+suQTAzHE;Q^C&KT~3@`)V z&H$Yc5|uD;SXeYi2R5bzK&+wJ2==L#pcv^ea9CKx85Chd5pAe&C5Eu!XqV0}a9CKh z;UHY`A>5ONt5Ae_I<7B`JBYv{x6A-DFv~#I4(oLPpMG8c&j#^`8DIwf6$7Gn5}vd% zC3m;ZB}aFyM7>2NA-}@nGz2^5Dn?(riq}z%pj}c2F>qK|L< { + for (const entry of entries) { + const { width, height } = entry.contentRect + if (width > 10 && height > 10) { + this._initializeMindMap(el) + this._clearObserver() + break + } + } + }) + this.resizeObserver.observe(el) + } + + // 实际初始化思维导图 + _initializeMindMap(el) { + // 确保没有重复初始化 + if (this.mindMapAPP) return + const filePath = this.file?.path + let initLocationNodeId = '' + const { fileToSubpathMap } = this.plugin + if (fileToSubpathMap && fileToSubpathMap[filePath]) { + initLocationNodeId = fileToSubpathMap[filePath] + delete fileToSubpathMap[filePath] + } + this.mindMapAPP = initApp(el, { + // 传递初始数据给思维导图渲染 + getInitMindMapData: () => { + return this.parsedMindMapData.metadata.content + }, + // 获取思维导图初始化位置的节点ID + getInitLocationNodeId: () => { + return initLocationNodeId + }, + // 从思维导图获取最新数据 + getMindMapCurrentData: (content, linkData) => { + this.parsedMindMapData.metadata.content = content + this.mindMapData = assembleMarkdownText({ + metadata: { + path: `${filePath}`, + tags: [SMM_TAG], + content: LZString.compressToBase64(content) + }, + svgdata: this.parsedMindMapData.svgdata, + linkdata: linkData || this.parsedMindMapData.linkdata || [] + }) + }, + // 思维导图中触发保存 + saveMindMapData: (_, svgData) => { + if (svgData) { + this.parsedMindMapData.svgdata = LZString.compressToBase64(svgData) + } + this._showSavingTip() + this.save() + }, + // 获取思维导图配置 + getMindMapConfig: () => { + return this.plugin.settings.mindMapConfig || {} + }, + // 设置思维导图配置 + saveMindMapConfig: newConfig => { + this.plugin.settings.mindMapConfig = newConfig + this.plugin._saveSettings() + }, + // 获取思维导图本地配置 + getMindMapLocalConfig: () => { + const { mindMapLocalConfig, themeMode } = this.plugin.settings + const config = mindMapLocalConfig || {} + config.isDark = + themeMode === 'follow' + ? this.plugin._getObIsDark() + : themeMode === 'dark' + return config + }, + // 设置思维导图本地配置 + saveMindMapLocalConfig: newConfig => { + this.plugin.settings.mindMapLocalConfig = newConfig + this.plugin._saveSettings() + }, + // 获取设置 + getSettings: () => { + return this.plugin.settings || {} + }, + updateSettings: data => { + this.plugin.settings = { + ...this.plugin.settings, + ...data + } + this.plugin._saveSettings() + }, + // 获取所有文件 + getObAllFiles: (extraSelf = true) => { + const fileList = this.app.vault.getFiles() + if (extraSelf && this.file) { + return fileList.filter(item => { + return item.path !== this.file.path + }) + } + return fileList + }, + // 创建内链文件信息 + createLinkInfoFromFilePath: filePath => { + const file = this.app.vault.getAbstractFileByPath(filePath) + if (!file) { + return null + } + const linkText = this.app.fileManager.generateMarkdownLink( + file, + this.file?.path || '' + ) + return { + link: file.path, + linkText + } + }, + // 打开文件 + openFile: filePath => { + if (!filePath) return + // [[xxx#xxx]]、[[xxx^xxx]]、[[xxx|xxx]] + const arr = filePath.split(/(#|^|\|)/) + filePath = arr[0] + let postfix = '' + if (arr.length > 1 && arr[1] !== '|') { + postfix = arr.slice(1).join('') + } + this.app.vault.getAbstractFileBy + let file = this.app.vault.getAbstractFileByPath(filePath) + if (!file) { + file = this.app.vault.getAbstractFileByPath(filePath + '.md') + } + if (file && file instanceof TFile) { + this.app.workspace.openLinkText(file.path + postfix, '') + } + }, + // 核心方法:打开网页链接 + openWebLink: url => { + if (this.app.openExternal) { + this.app.openExternal(url) + return + } + // 兼容旧版 Obsidian 和移动端 + try { + // 桌面端 Electron 环境 + if (window.require) { + const { shell } = window.require('electron') + shell.openExternal(url) + return + } + } catch (e) { + console.error('Electron module not available', e) + } + // 通用回退方案 + window.open(url, '_blank', 'noopener,noreferrer') + }, + // 保存文件到 vault + saveFileToVault: async (file, isImg = true) => { + try { + const folder = isImg + ? this._getFileSavePath( + 'imagePathType', + 'imagePath', + 'imageSubPath' + ) + : this._getFileSavePath( + 'attachmentPathType', + 'attachmentPath', + 'attachmentSubPath' + ) + await this.plugin._ensureDirectoryExists(folder) + // 处理文件名冲突 + let fileName = file.name + let counter = 1 + while ( + await this.app.vault.adapter.exists( + folder ? `${folder}/${fileName}` : fileName + ) + ) { + const parts = file.name.split('.') + const ext = parts.pop() + fileName = `${parts.join('.')}_${counter}.${ext}` + counter++ + } + // 读取文件内容 + const arrayBuffer = await file.arrayBuffer() + // 在vault中创建路径 + const vaultPath = folder ? `${folder}/${fileName}` : fileName + // 写入文件 + await this.app.vault.createBinary(vaultPath, arrayBuffer) + return vaultPath + } catch (error) { + console.error('保存文件失败:', error) + return null + } + }, + // 获取资源路径 + getResourcePath: vaultPath => { + return this.app.vault.adapter.getResourcePath(vaultPath) + }, + // 获取当前文件的链接信息 + getObInternalLink: (...args) => { + return this.app.fileManager.generateMarkdownLink(this.file, ...args) + }, + // 显示ob提示 + showTip: tip => { + new Notice(tip) + }, + // 从ob://协议的URI中获取文件信息 + getFileFromUri: uri => { + const params = new URLSearchParams(uri.split('?')[1]) + const vault = decodeURIComponent(params.get('vault') || '') + const filePath = decodeURIComponent(params.get('file') || '') + if (!vault || !filePath) return null + // 检查当前vault是否匹配 + if (this.app.vault.getName() !== vault) { + // 只允许添加当前仓库的文件 + new Notice(this.plugin._t('tip.onlyEnableSelectCurrentVaultFile')) + return null + } + return this.app.vault.getAbstractFileByPath(filePath) + } + }) + + setTimeout(() => { + this._listenMindMapEvent() + }, 100) + } + + // 重写保存钩子(最直接的方式) + async save() { + if (!this.isActive) { + return + } + // 获取一下最新数据 + // 取消本次自动保存 + if (this.mindMapAPP) { + this.mindMapAPP.$bus.$emit('getMindMapCurrentData') + this.mindMapAPP.$bus.$emit('clearAutoSave') + } + await super.save() + this._setIsUnSave(false) + this._hideSavingTip() + } + + _onKeyup(e) { + if (e.ctrlKey || e.metaKey) { + if (e.key === 's') { + this._showSavingTip() + this.save() + } + } + } + + // 监听思维导图事件 + _listenMindMapEvent() { + this._onDataChange = this._onDataChange.bind(this) + this.mindMapAPP.$bus.$on('data_change', this._onDataChange) + // this.mindMapAPP.$bus.$on('view_data_change', this._onDataChange) + } + + // 监听思维导图数据改变 + _onDataChange() { + if (this.isNotTriggerDataChange) { + this.isNotTriggerDataChange = false + return + } + this._setIsUnSave(true) + } + + // 处理窗口大小变化 + _handleResize() { + // if (!this.isActive) return + if (!this.mindMapAPP) { + return + } + try { + if (this.mindMapAPP.$updateMindMapSize) { + const { width, height } = this.warpEl.getBoundingClientRect() + if (width > 0 && height > 0) { + this.mindMapAPP.$updateMindMapSize() + } + } + } catch (e) { + console.error('更新尺寸失败:', e) + } + } + + // 处理标签激活状态变化 + async _handleActiveChange(leaf) { + const nowActive = leaf?.view === this + if (nowActive && !this.isActive) { + // 标签被激活 + this.isActive = true + // 激活后刷新视图 + if (this.mindMapAPP) { + // 更新尺寸 + // this._handleResize() + // 更新外部修改 + if (this.isOuterChange) { + // await this.file.vault.read(this.file) + this.isOuterChange = false + } + } + } else if (!nowActive && this.isActive) { + // 标签失去激活 + if (this.mindMapAPP) { + this.save() + this.mindMapAPP.$clearUpdateMindMapSize() + } + this.isActive = false + } + } + + // 处理外部文件修改 + async _handleExternalChange(file) { + if (this.isActive) return + if (file.path === this.file?.path) { + this.isOuterChange = true + } + } + + // 清空视图数据 + clear() { + // 清理观察者 + this._clearObserver() + // 销毁应用实例 + if (this.mindMapAPP) { + try { + this.mindMapAPP.$destroy() + } catch (e) { + console.error('销毁实例时出错:', e) + } + this.mindMapAPP = null + } + this.warpEl.empty() + this.mindMapData = '' + this.parsedMindMapData = null + this.isUnSave = false + this.isOuterChange = false + this.isNotTriggerDataChange = false + this._resetOnOutlineEditMode() + } + + async onClose() { + await this.save() // 手动保存 + this.clear() + this.saveButton = null + this.exportButton = null + this.importButton = null + this.printOutlineButton = null + this.changeToOutlineButton = null + this.changeToMindmapButton = null + this.toggleReadonlyButton = null + window.removeEventListener('keyup', this._onKeyup) + } + + // 防抖函数实现 + _debounce(func, wait) { + let timeout + return () => { + clearTimeout(timeout) + timeout = setTimeout(() => { + func.call(this) + }, wait) + } + } + + // 在视图头部右侧添加工具按钮 + _addActionBtns() { + // svg需添加class="svg-icon" + const viewActions = this.headerEl.querySelector('.view-actions') + + // 切换只读/编辑模式 + this.toggleReadonlyButton = this._createActionBtn( + this.plugin._t('action.changeToReadonly'), + 'book-open', + viewActions, + async () => { + await this.save() + if (this.isReadonlyMode) { + this.isReadonlyMode = false + this.mindMapAPP.$bus.$emit('toggleReadonly', false) + setIcon(this.toggleReadonlyButton, 'book-open') + this.toggleReadonlyButton.setAttribute( + 'aria-label', + this.plugin._t('action.changeToReadonly') + ) + this._showButtons([ + this.saveButton, + this.importButton, + this.exportButton + ]) + } else { + this.isReadonlyMode = true + this.mindMapAPP.$bus.$emit('toggleReadonly', true) + setIcon(this.toggleReadonlyButton, 'edit-3') + this.toggleReadonlyButton.setAttribute( + 'aria-label', + this.plugin._t('action.changeToEdit') + ) + this._hideButtons([ + this.saveButton, + this.importButton, + this.exportButton + ]) + } + }, + true + ) + + // 切换为大纲模式 + this.changeToOutlineButton = this._createActionBtn( + this.plugin._t('action.changeToOutline'), + OUTLINE_ICON, + viewActions, + async () => { + await this.save() + this._hideButtons([this.exportButton, this.changeToOutlineButton]) + this._showButtons([this.printOutlineButton, this.changeToMindmapButton]) + // 保存按钮文案修改 + this.saveButton.setAttribute('aria-label', '保存') + this.mindMapAPP.$bus.$emit('showOutlineEdit') + this.isOutlineEditMode = true + } + ) + + // 切换为思维导图模式 + this.changeToMindmapButton = this._createActionBtn( + this.plugin._t('action.changeToMindMap'), + MINDMAP_ICON, + viewActions, + async () => { + await this.save() + this.mindMapAPP.$bus.$emit('hideOutlineEdit') + this._resetOnOutlineEditMode() + } + ) + this._hideButtons([this.changeToMindmapButton]) + + // 打印大纲 + this.printOutlineButton = this._createActionBtn( + this.plugin._t('action.printOutline'), + PRINT_ICON, + viewActions, + async () => { + this.mindMapAPP.$bus.$emit('printOutline') + } + ) + this._hideButtons([this.printOutlineButton]) + + // 导入 + this.importButton = this._createActionBtn( + this.plugin._t('action.import'), + IMPORT_ICON, + viewActions, + () => { + this.mindMapAPP.$bus.$emit('showImport') + } + ) + + // 导出 + this.exportButton = this._createActionBtn( + this.plugin._t('action.export'), + EXPORT_ICON, + viewActions, + () => { + this.mindMapAPP.$bus.$emit('showExport') + } + ) + + // 保存并更新图像数据 + this.saveButton = this._createActionBtn( + this.plugin._t('action.saveAndUpdateImage'), + SAVE_ICON, + viewActions, + () => { + this._showSavingTip() + this.mindMapAPP.$bus.$emit('saveToLocal', true, true) + } + ) + + // 保存中的提示 + this.savingTipEl = this.headerEl.createEl('div', { + cls: 'smm-save-tip' + }) + viewActions.insertBefore(this.savingTipEl, viewActions.firstChild) + } + + _showSavingTip() { + if (!this.savingTipEl) return + // 保存中... + this.savingTipEl.innerText = this.plugin._t('tip.saving') + } + + _hideSavingTip() { + if (!this.savingTipEl) return + this.savingTipEl.innerText = '' + } + + // 创建工具按钮 + _createActionBtn(label, icon, parentEl, onClick, isObIcon = false) { + const el = this.headerEl.createEl('button', { + cls: 'clickable-icon' + }) + el.setAttribute('aria-label', label) + if (isObIcon) { + setIcon(el, icon, 24) + } else { + el.innerHTML = icon + } + parentEl.insertBefore(el, parentEl.firstChild) + el.addEventListener('click', onClick) + return el + } + + // 重置大纲编辑模式 + _resetOnOutlineEditMode() { + if (this.isOutlineEditMode) { + this.saveButton.setAttribute( + 'aria-label', + this.plugin._t('action.saveAndUpdateImage') + ) + this._showButtons([this.exportButton, this.changeToOutlineButton]) + this._hideButtons([this.changeToMindmapButton, this.printOutlineButton]) + this.isOutlineEditMode = false + } + } + + _showButtons(list) { + list.forEach(el => { + el.style.display = 'flex' + }) + } + + _hideButtons(list) { + list.forEach(el => { + el.style.display = 'none' + }) + } + + // 设置是否存在未保存的内容 + _setIsUnSave(isUnSave) { + if (!this.saveButton) return + this.isUnSave = isUnSave + this.saveButton.style.color = isUnSave ? '#ff6600' : 'var(--icon-color)' + } + + // 检测主题模式 + _initThemeMode() { + // 初始检查 + this._updateThemeMode() + + // 监听主题变化事件 + this.registerEvent( + this.app.workspace.on('css-change', () => { + this._updateThemeMode() + }) + ) + } + + // 更新主题模式 + _updateThemeMode() { + if (this.plugin.settings.themeMode === 'follow') { + const isDarkMode = this.plugin._getObIsDark() + if (this.mindMapAPP) { + this.mindMapAPP.$bus.$emit('setIsDark', isDarkMode) + } + } + } + + // 获取图片、文件存储路径 + _getFileSavePath(typeKey, pathKey, subPathKey) { + const type = this.plugin.settings[typeKey] + const folder = this.plugin.settings[pathKey] || '' + const subFolder = this.plugin.settings[subPathKey] || '' + switch (type) { + case 'root': + return '' + case 'custom': + return folder + case 'currentFileFolder': + return this.plugin._getActiveFileDirectory() + case 'currentFileFolderSubFolder': + const activeFileDirectory = this.plugin._getActiveFileDirectory() + return [activeFileDirectory, subFolder].filter(Boolean).join('/') + default: + return '' + } + } +} + +export default SmmEditView diff --git a/plugin/locales/en.json b/plugin/locales/en.json new file mode 100644 index 0000000..91474c3 --- /dev/null +++ b/plugin/locales/en.json @@ -0,0 +1,113 @@ +{ + "common": { + "mindMap": "Mind Map", + "rootNodeDefaultText": "Root Node", + "secondNodeDefaultText": "Secondary node", + "branchNodeDefaultText": "Branch Topic" + }, + "action": { + "createMindMap": "Create New Mind Map", + "createMindMapInsertToMd": "Create Mind Map and Insert into Current Document", + "openAsMd": "Open as Markdown Document", + "openAsMindMap": "Open as Mind Map Document", + "changeToOutline": "Switch to Outline Mode", + "changeToMindMap": "Switch to Mind Map Mode", + "printOutline": "Print Outline", + "import": "Import", + "export": "Export", + "saveAndUpdateImage": "Save and Update Image Data", + "insertCodeBlockToMd": "Insert Mind Map Code Block into Current Document", + "previewAsMindMap": "Preview as Mind Map", + "changeToReadonly": "Change to Readonly Mode", + "changeToEdit": "Change to Edit Mode" + }, + "tip": { + "fileExist": "File already exists", + "createMindMapFail": "Failed to create mind map", + "fileIsNotMd": "Current file is not a Markdown document", + "fileIsEmpty": "File content is empty", + "fileFormatError": "File format error", + "onlyEnableSelectCurrentVaultFile": "Only files from the current vault can be added", + "saving": "Saving...", + "integerInputError": "Please enter a number greater than 0", + "noPreviewImage": "No preview image available", + "insertFail": "Insertion failed", + "noMatchResult": "No matching results" + }, + "setting": { + "themeMode": { + "title": "Theme Mode", + "desc": "Dark and light color modes", + "option1": "Follow Obsidian", + "option2": "Light Mode", + "option3": "Dark Mode" + }, + "theme": { + "title": "Default Theme", + "desc": "Default theme when creating a new mind map file" + }, + "layout": { + "title": "Default Layout", + "desc": "The default structure when creating a new mind map file" + }, + "folder": { + "title4": "Mind Map File Storage Location", + "desc4": "Storage location for newly created SimpleMindMap files", + "title1": "Custom File Storage Directory", + "desc1": "Custom file storage directory, relative to vault root directory", + "title5": "Image Storage Location", + "desc5": "Storage location for uploaded image files (node images, background images)", + "title2": "Custom Image Storage Directory", + "desc2": "Custom image storage directory, relative to vault root directory", + "title6": "Custom Subfolder", + "desc6": "Custom subfolder, relative to current file's folder", + "title7": "File Storage Location", + "desc7": "Storage directory for local files selected in node hyperlinks", + "title3": "Custom File Storage Directory", + "desc3": "Custom file storage directory, relative to vault root directory", + "option1": "Vault root directory", + "option2": "Specified folder", + "option3": "Current file's folder", + "option4": "Specified subfolder under current file's folder" + }, + "compress": { + "title1": "Compress Images", + "desc1": "Whether to compress uploaded node images (locally selected images)", + "title2": "Maximum Compression Width", + "desc2": "Set the maximum width after image compression", + "title3": "Maximum Compression Height", + "desc3": "Set the maximum height after image compression", + "title4": "Image Quality", + "desc4": "The quality of compressed images is only valid for certain image formats, such as jpg", + "curValue": "Current Value", + "reset": "Reset to Default" + }, + "autoSave": { + "title": "Auto-save Interval", + "desc": "Inactivity time before auto-save (seconds)" + }, + "codeBlock": { + "title": "Code Block Initial Height", + "desc": "Initial height when embedding via smm code block (pixels)" + }, + "linkInfo": { + "issues": "Bugs and Feature Requests", + "desktop": "Download independent client" + }, + "embed": { + "title1": "Embed Preview Double Click to Open a New Window", + "desc1": "When embedding an MD document in format ![[]], double-click to preview the image and open the file in a new window", + "title2": "Embed Preview Background Transparent", + "desc2": "Set whether the background of the embedded preview image is transparent" + }, + "file": { + "title1": "New Mind Map File Name Prefix", + "desc1": "Default naming format for new mind map files: Prefix + Space + Date Timestamp", + "title2": "Date Timestamp Format for New Mind Map Files", + "desc2": "Default format: YYYY-MM-DD HH.mm.ss, Example: 2025-01-01 23.59.59. For details on format meaning and modification, refer to: https://day.js.org/docs/en/parse/string-format" + }, + "button": { + "select": "Select" + } + } +} diff --git a/plugin/locales/vi.json b/plugin/locales/vi.json new file mode 100644 index 0000000..5947071 --- /dev/null +++ b/plugin/locales/vi.json @@ -0,0 +1,113 @@ +{ + "common": { + "mindMap": "Sơ đồ tư duy", + "rootNodeDefaultText": "Nút gốc", + "secondNodeDefaultText": "Nút cấp hai", + "branchNodeDefaultText": "Chủ đề nhánh" + }, + "action": { + "createMindMap": "Tạo sơ đồ tư duy mới", + "createMindMapInsertToMd": "Tạo sơ đồ tư duy mới và chèn vào tài liệu hiện tại", + "openAsMd": "Mở dưới dạng tài liệu Markdown", + "openAsMindMap": "Mở dưới dạng tài liệu sơ đồ tư duy", + "changeToOutline": "Chuyển sang chế độ dàn bài", + "changeToMindMap": "Chuyển sang chế độ sơ đồ tư duy", + "printOutline": "In dàn bài", + "import": "Nhập vào", + "export": "Xuất ra", + "saveAndUpdateImage": "Lưu và cập nhật dữ liệu hình ảnh", + "insertCodeBlockToMd": "Chèn khối mã sơ đồ tư duy vào tài liệu hiện tại", + "previewAsMindMap": "Xem trước dưới dạng sơ đồ tư duy", + "changeToReadonly": "Chuyển sang chế độ xem", + "changeToEdit": "Chuyển sang chế độ chỉnh sửa" + }, + "tip": { + "fileExist": "Tệp đã tồn tại", + "createMindMapFail": "Tạo sơ đồ tư duy thất bại", + "fileIsNotMd": "Tệp hiện tại không phải tệp markdown", + "fileIsEmpty": "Nội dung tệp trống", + "fileFormatError": "Lỗi định dạng tệp", + "onlyEnableSelectCurrentVaultFile": "Chỉ cho phép thêm tệp từ kho hiện tại", + "saving": "Đang lưu...", + "integerInputError": "Vui lòng nhập số lớn hơn 0", + "noPreviewImage": "Không có hình ảnh xem trước", + "insertFail": "Chèn thất bại", + "noMatchResult": "Không có kết quả phù hợp" + }, + "setting": { + "themeMode": { + "title": "Chế độ chủ đề", + "desc": "Chế độ tối, ánh sáng", + "option1": "Theo Obsidian", + "option2": "Chế độ sáng", + "option3": "Chế độ tối" + }, + "theme": { + "title": "Chủ đề mặc định", + "desc": "Giao diện mặc định khi tạo bản đồ tư duy mới" + }, + "layout": { + "title": "Cấu trúc mặc định", + "desc": "Cấu trúc mặc định khi tạo tệp sơ đồ tư duy mới" + }, + "folder": { + "title4": "Vị trí lưu trữ tệp sơ đồ tư duy", + "desc4": "Vị trí lưu trữ tệp SimpleMindMap mới tạo", + "title1": "Thư mục lưu trữ tệp tùy chỉnh", + "desc1": "Thư mục lưu trữ tệp tùy chỉnh, tương đối với thư mục gốc kho lưu trữ", + "title5": "Vị trí lưu trữ hình ảnh", + "desc5": "Vị trí lưu trữ tệp hình ảnh đã tải lên (hình ảnh nút, hình nền)", + "title2": "Thư mục lưu trữ hình ảnh tùy chỉnh", + "desc2": "Thư mục lưu trữ hình ảnh tùy chỉnh, tương đối với thư mục gốc kho lưu trữ", + "title6": "Thư mục con tùy chỉnh", + "desc6": "Thư mục con tùy chỉnh, tương đối với thư mục chứa tệp hiện tại", + "title7": "Vị trí lưu trữ tệp", + "desc7": "Thư mục lưu trữ tệp cục bộ được chọn trong siêu liên kết nút", + "title3": "Thư mục lưu trữ tệp tùy chỉnh", + "desc3": "Thư mục lưu trữ tệp tùy chỉnh, tương đối với thư mục gốc kho lưu trữ", + "option1": "Thư mục gốc của kho lưu trữ", + "option2": "Thư mục chỉ định", + "option3": "Thư mục chứa tệp hiện tại", + "option4": "Thư mục con được chỉ định trong thư mục chứa tệp hiện tại" + }, + "compress": { + "title1": "Có nén ảnh không", + "desc1": "Nén ảnh nút đã tải lên (ảnh được chọn cục bộ)", + "title2": "Chiều rộng tối đa khi nén", + "desc2": "Thiết lập chiều rộng tối đa sau khi nén ảnh", + "title3": "Chiều cao tối đa khi nén", + "desc3": "Thiết lập chiều cao tối đa sau khi nén ảnh", + "title4": "Chất lượng ảnh", + "desc4": "Chất lượng sau khi nén hình ảnh, chỉ có hiệu quả đối với một số định dạng hình ảnh, ví dụ như: jpg", + "curValue": "Giá trị hiện tại", + "reset": "Đặt lại về mặc định" + }, + "autoSave": { + "title": "Thời gian tự động lưu", + "desc": "Thời gian tự động lưu khi không có thao tác, đơn vị: giây" + }, + "codeBlock": { + "title": "Chiều cao ban đầu của khối mã nhúng", + "desc": "Chiều cao ban đầu khi nhúng bằng khối mã smm, đơn vị: px" + }, + "linkInfo": { + "issues": "Gửi bug hoặc gợi ý", + "desktop": "Nhận khách hàng độc lập" + }, + "embed": { + "title1": "Nhúng xem thử Nhấp đúp vào cửa sổ mới để mở", + "desc1": "![[]] Định dạng Nhấp đúp vào ô xem thử ảnh khi nhúng tài liệu md có cửa sổ mới Mở tập tin không", + "title2": "Hình nền nhúng xem thử có trong suốt không", + "desc2": "Thiết lập hình nền nhúng xem thử có trong suốt không" + }, + "file": { + "title1": "Tiền tố tên tệp sơ đồ tư duy mới", + "desc1": "Định dạng đặt tên mặc định cho tên tệp sơ đồ tư duy mới là: Tiền tố + Dấu cách + Dấu thời gian ngày tháng", + "title2": "Định dạng dấu thời gian ngày tháng cho tên tệp sơ đồ tư duy mới", + "desc2": "Mặc định: YYYY-MM-DD HH.mm.ss, Ví dụ thực tế: 2025-01-01 23.59.59. Nếu không rõ ý nghĩa cụ thể của định dạng này và cách sửa đổi, vui lòng tham khảo: https://day.js.org/docs/en/parse/string-format" + }, + "button": { + "select": "Chọn" + } + } +} diff --git a/plugin/locales/zh.json b/plugin/locales/zh.json new file mode 100644 index 0000000..4d71985 --- /dev/null +++ b/plugin/locales/zh.json @@ -0,0 +1,113 @@ +{ + "common": { + "mindMap": "思维导图", + "rootNodeDefaultText": "根节点", + "secondNodeDefaultText": "二级节点", + "branchNodeDefaultText": "分支主题" + }, + "action": { + "createMindMap": "新建思维导图", + "createMindMapInsertToMd": "新建思维导图并插入当前文档", + "openAsMd": "打开为Markdown文档", + "openAsMindMap": "打开为思维导图文档", + "changeToOutline": "切换为大纲模式", + "changeToMindMap": "切换为思维导图模式", + "printOutline": "打印大纲", + "import": "导入", + "export": "导出", + "saveAndUpdateImage": "保存并更新图像数据", + "insertCodeBlockToMd": "插入思维导图代码块到当前文档", + "previewAsMindMap": "预览为思维导图", + "changeToReadonly": "切换为只读模式", + "changeToEdit": "切换为编辑模式" + }, + "tip": { + "fileExist": "文件已经存在", + "createMindMapFail": "新建思维导图失败", + "fileIsNotMd": "当前文件不是markdown文件", + "fileIsEmpty": "文件内容为空", + "fileFormatError": "文件格式错误", + "onlyEnableSelectCurrentVaultFile": "只允许添加当前仓库的文件", + "saving": "保存中...", + "integerInputError": "请输入大于0的数字", + "noPreviewImage": "没有可预览图片", + "insertFail": "插入失败", + "noMatchResult": "暂无匹配结果" + }, + "setting": { + "themeMode": { + "title": "主题模式", + "desc": "深色、浅色模式", + "option1": "跟随obsidian", + "option2": "浅色模式", + "option3": "深色模式" + }, + "theme": { + "title": "默认主题", + "desc": "新建思维导图文件时的默认主题" + }, + "layout": { + "title": "默认结构", + "desc": "新建思维导图文件时的默认结构" + }, + "folder": { + "title4": "思维导图文件存储位置", + "desc4": "新建的SimpleMindMap文件存储位置", + "title1": "自定义文件存储目录", + "desc1": "自定义文件存储目录,相对于仓库根目录", + "title5": "图片存储位置", + "desc5": "上传的图片文件(节点图片、背景图片)存储位置", + "title2": "自定义图片存储目录", + "desc2": "自定义图片存储目录,相对于仓库根目录", + "title6": "自定义子文件夹", + "desc6": "自定义子文件夹,相对于当前文件所在文件夹", + "title7": "文件存储位置", + "desc7": "节点超链接中选择的本地文件存储目录", + "title3": "自定义文件存储目录", + "desc3": "自定义文件存储目录,相对于仓库根目录", + "option1": "仓库的根目录", + "option2": "指定文件夹", + "option3": "当前文件所在的文件夹", + "option4": "当前文件所在文件夹下指定的子文件夹" + }, + "compress": { + "title1": "是否压缩图片", + "desc1": "是否压缩上传的节点图片(从本地选择的图片)", + "title2": "最大压缩宽度", + "desc2": "图片压缩后的最大宽度", + "title3": "最大压缩高度", + "desc3": "图片压缩后的最大高度", + "title4": "图片质量", + "desc4": "图片压缩后的质量,仅对部分图片格式有效,比如:jpg", + "curValue": "当前值", + "reset": "重置为默认值" + }, + "autoSave": { + "title": "自动保存时间", + "desc": "无操作自动保存时间,单位:秒" + }, + "codeBlock": { + "title": "代码块嵌入初始高度", + "desc": "smm代码块方式嵌入时初始高度,单位:px" + }, + "linkInfo": { + "issues": "提交bug或建议", + "desktop": "下载独立客户端" + }, + "embed": { + "title1": "嵌入预览双击是否新窗口打开", + "desc1": "![[]]格式嵌入md文档时双击预览图像是否新窗口打开文件", + "title2": "嵌入预览的图像背景是否透明", + "desc2": "![[]]格式嵌入预览的图像背景是否透明" + }, + "file": { + "title1": "新建思维导图的文件名前缀", + "desc1": "新建思维导图文件名默认的命名格式为:前缀 + 空格 + 日期时间戳", + "title2": "新建思维导图的文件名日期时间戳格式", + "desc2": "默认为:YYYY-MM-DD HH.mm.ss,实际示例:2025-01-01 23.59.59,如不清楚该格式的具体含义及如何修改,请参考:https://day.js.org/docs/en/parse/string-format" + }, + "button": { + "select": "选择" + } + } +} diff --git a/plugin/locales/zhtw.json b/plugin/locales/zhtw.json new file mode 100644 index 0000000..5d6d7c9 --- /dev/null +++ b/plugin/locales/zhtw.json @@ -0,0 +1,113 @@ +{ + "common": { + "mindMap": "思維導圖", + "rootNodeDefaultText": "根節點", + "secondNodeDefaultText": "二級節點", + "branchNodeDefaultText": "分支主題" + }, + "action": { + "createMindMap": "新建思維導圖", + "createMindMapInsertToMd": "新建思維導圖並插入當前文件", + "openAsMd": "開啟為 Markdown 文件", + "openAsMindMap": "開啟為思維導圖文件", + "changeToOutline": "切換為大綱模式", + "changeToMindMap": "切換為思維導圖模式", + "printOutline": "列印大綱", + "import": "匯入", + "export": "匯出", + "saveAndUpdateImage": "儲存並更新圖像資料", + "insertCodeBlockToMd": "插入思維導圖程式碼區塊到當前文件", + "previewAsMindMap": "預覽為心智圖", + "changeToReadonly": "切換為只讀模式", + "changeToEdit": "切換為編輯模式" + }, + "tip": { + "fileExist": "檔案已經存在", + "createMindMapFail": "新建思維導圖失敗", + "fileIsNotMd": "當前檔案不是 markdown 檔案", + "fileIsEmpty": "檔案內容為空", + "fileFormatError": "檔案格式錯誤", + "onlyEnableSelectCurrentVaultFile": "只允許新增當前倉庫的檔案", + "saving": "儲存中...", + "integerInputError": "請輸入大於 0 的數字", + "noPreviewImage": "沒有可預覽圖片", + "insertFail": "插入失敗", + "noMatchResult": "暫無匹配結果" + }, + "setting": { + "themeMode": { + "title": "主題模式", + "desc": "深色、淺色模式", + "option1": "跟隨 Obsidian", + "option2": "淺色模式", + "option3": "深色模式" + }, + "theme": { + "title": "預設主題", + "desc": "新建心智圖檔案時的默認主題" + }, + "layout": { + "title": "預設結構", + "desc": "新建心智圖檔案時的默認結構" + }, + "folder": { + "title4": "思維導圖文件存儲位置", + "desc4": "新建的SimpleMindMap文件存儲位置", + "title1": "自定義文件存儲目錄", + "desc1": "自定義文件存儲目錄,相對於倉庫根目錄", + "title5": "圖片存儲位置", + "desc5": "上傳的圖片文件(節點圖片、背景圖片)存儲位置", + "title2": "自定義圖片存儲目錄", + "desc2": "自定義圖片存儲目錄,相對於倉庫根目錄", + "title6": "自定義子文件夾", + "desc6": "自定義子文件夾,相對於當前文件所在文件夾", + "title7": "文件存儲位置", + "desc7": "節點超連結中選擇的本地文件存儲目錄", + "title3": "自定義文件存儲目錄", + "desc3": "自定義文件存儲目錄,相對於倉庫根目錄", + "option1": "倉庫的根目錄", + "option2": "指定文件夾", + "option3": "當前文件所在的文件夾", + "option4": "當前文件所在文件夾下指定的子文件夾" + }, + "compress": { + "title1": "是否壓縮圖片", + "desc1": "是否壓縮上傳的節點圖片(從本地選擇的圖片)", + "title2": "最大壓縮寬度", + "desc2": "設定圖片壓縮後的最大寬度", + "title3": "最大壓縮高度", + "desc3": "設定圖片壓縮後的最大高度", + "title4": "圖片質量", + "desc4": "圖片壓縮後的質量,僅對部分圖片格式有效,比如:jpg", + "curValue": "當前值", + "reset": "重置為預設值" + }, + "autoSave": { + "title": "自動儲存時間", + "desc": "無操作自動儲存時間,單位:秒" + }, + "codeBlock": { + "title": "程式碼區塊嵌入初始高度", + "desc": "smm 程式碼區塊方式嵌入時初始高度,單位:px" + }, + "linkInfo": { + "issues": "提交bug或建議", + "desktop": "獲取獨立用戶端" + }, + "embed": { + "title1": "嵌入預覽按兩下是否新窗口打開", + "desc1": "![[]]格式嵌入md檔案時按兩下預覽影像是否新窗口打開文件", + "title2": "嵌入預覽的圖像背景是否透明", + "desc2": "設定![[]]格式嵌入預覽的圖像背景是否透明" + }, + "file": { + "title1": "新建思維導圖的檔案名稱前綴", + "desc1": "新建思維導圖檔案名稱預設的命名格式為:前綴 + 空格 + 日期時間戳", + "title2": "新建思維導圖的檔案名稱日期時間戳格式", + "desc2": "預設為:YYYY-MM-DD HH.mm.ss,實際範例:2025-01-01 23.59.59,如不清楚該格式的具體含義及如何修改,請參考:https://day.js.org/docs/en/parse/string-format" + }, + "button": { + "select": "選擇" + } + } +} diff --git a/plugin/main.js b/plugin/main.js new file mode 100644 index 0000000..1f3b9bb --- /dev/null +++ b/plugin/main.js @@ -0,0 +1,561 @@ +import { + addIcon, + Plugin, + TFile, + TFolder, + Notice, + MarkdownView, + WorkspaceLeaf, + Workspace, + getLanguage +} from 'obsidian' +import './style.css' +import SmmEditView from './SmmEditView.js' +import { + SMM_VIEW_TYPE, + SIDE_BAR_ICON, + SMM_TAG, + DEFAULT_SETTINGS +} from './ob/constant.js' +import dayjs from 'dayjs' +import { + createDefaultText, + createDefaultMindMapData +} from './ob/metadataAndMarkdown.js' +import { around, dedupe } from 'monkey-around' +import { hideTargetMenu } from './ob/utils.js' +import MarkdownPostProcessor from './ob/MarkdownPostProcessor.js' +import SmmSettingTab from './ob/SmmSettingTab.js' +import { langList } from './src/config/zh' +import i18n from 'i18next' +import enTranslations from './locales/en.json' +import zhTranslations from './locales/zh.json' +import viTranslations from './locales/vi.json' +import zhtwTranslations from './locales/zhtw.json' +import { PreviewMindMap } from './ob/PreviewMindMap.js' + +export default class SimpleMindMapPlugin extends Plugin { + async onload() { + // 添加设置 + await this._addSetting() + + // 初始化多语言 + i18n.init({ + lng: getLanguage() || 'en', // 自动检测用户语言 + fallbackLng: 'en', + resources: { + en: { translation: enTranslations }, + zh: { translation: zhTranslations }, + vi: { translation: viTranslations }, + ['zh-TW']: { translation: zhtwTranslations } + } + }) + + addIcon('smm-icon', SIDE_BAR_ICON) + + // 注册自定义视图 + this.registerView(SMM_VIEW_TYPE, leaf => new SmmEditView(leaf, this)) + + // 添加 Ribbon 图标 + this._createSmmFile = this._createSmmFile.bind(this) + this.addRibbonIcon( + 'smm-icon', + this._t('action.createMindMap'), // 新建思维导图 + this._createSmmFile + ) + this._setCustomFileIcon() + + // 添加命令 + this._addCommands() + + // 添加右键菜单 + this._addFileMenus() + + // 打补丁,拦截默认的打开方法 + this._registerMonkeyPatches() + + // 切换到思维导图视图 + this._switchToSmmAfterLoad() + + // 创建状态栏子元素 + this._initStatusBar() + + // 处理嵌入的思维导图 + this.markdownPostProcessor = new MarkdownPostProcessor(this) + this.markdownPostProcessor.register() + + // 记录打开文件的子路径,用于定位到指定节点 + this.fileToSubpathMap = {} + } + + // 创建思维导图文件 + async _createSmmFile(folderPath = '', callback) { + try { + if (typeof folderPath !== 'string') { + folderPath = '' + } + let { fileNamePrefix, fileNameDateFormat } = this.settings + fileNamePrefix = fileNamePrefix || 'MindMap' + folderPath = this._getCreateFolderPath(folderPath) + await this._ensureDirectoryExists(folderPath) + const { vault } = this.app + const filePath = `${ + folderPath ? folderPath + '/' : '' + }${fileNamePrefix} ${dayjs().format(fileNameDateFormat)}.smm.md` + const fileContent = createDefaultText( + filePath, + this._getCreateDefaultMindMapOptions() + ) + try { + // 检查文件是否已存在 + const existingFile = vault.getAbstractFileByPath(filePath) + if (existingFile) { + // 文件已经存在 + new Notice(this._t('tip.fileExist')) + } else { + // 创建新文件 + await vault.create(filePath, fileContent) + if (callback && typeof callback === 'function') { + callback(filePath) + } else { + await this.app.workspace.openLinkText(filePath, '', true) + } + } + } catch (error) { + // 新建思维导图失败 + new Notice(this._t('tip.createMindMapFail')) + } + } catch (error) { + console.log(error) + // 新建思维导图失败 + new Notice(this._t('tip.createMindMapFail')) + } + } + + // 获取创建文件夹路径 + _getCreateFolderPath(folderPath) { + if (folderPath) return folderPath + const { filePathType, filePath } = this.settings + switch (filePathType) { + case 'root': + return '' + case 'custom': + return filePath + case 'currentFileFolder': + return this._getActiveFileDirectory() + default: + return '' + } + } + + // 添加命令 + _addCommands() { + // 新建思维导图 + this.addCommand({ + id: 'create-smm-mindmap', + name: this._t('action.createMindMap'), + callback: async () => { + this._createSmmFile() + } + }) + // 新建思维导图并插入当前文档 + this.addCommand({ + id: 'create-smm-mindmap-insert-markdown', + name: this._t('action.createMindMapInsertToMd'), + editorCallback: editor => { + this._createSmmFile('', fileName => { + try { + const file = this.app.vault.getAbstractFileByPath(fileName) + const currentFile = this.app.workspace.getActiveFile() + if (currentFile?.extension !== 'md') { + // 当前文件不是markdown文件 + new Notice(this._t('tip.fileIsNotMd')) + return + } + const linkText = this.app.fileManager.generateMarkdownLink( + file, + currentFile?.path || '' + ) + editor.replaceSelection('!' + linkText) + } catch (error) { + console.log(error) + // 新建思维导图失败 + new Notice(this._t('tip.createMindMapFail')) + } + }) + } + }) + } + + // 添加右键菜单 + _addFileMenus() { + this.registerEvent( + this.app.workspace.on('file-menu', (menu, file) => { + if (file instanceof TFolder) { + // 新建思维导图 + menu.addItem(item => { + item + .setTitle(this._t('action.createMindMap')) + .setIcon('smm-icon') + .onClick(() => { + this._createSmmFile(file.path) + }) + }) + } else if (file instanceof TFile) { + if (this._isSmmFile(file)) { + hideTargetMenu(menu, '在新窗口中打开') + hideTargetMenu(menu, '移动至新窗口') + // 打开为Markdown文档 + menu.addItem(item => + item + .setTitle(this._t('action.openAsMd')) + .setIcon('document') + .setSection('open') + .onClick(async () => { + await this.app.workspace.openLinkText(file.path, '', true) + const leaf = this.app.workspace.getLeaf(false) + const mdViewType = this.app.viewRegistry.getTypeByExtension( + 'md' + ) + await leaf.setViewState({ + type: mdViewType, + state: { + ...leaf.getViewState().state, + isSwitchToMarkdownViewFromSmmView: true + }, + active: true + }) + this.app.workspace.revealLeaf(leaf) + }) + ) + } + } + }) + ) + } + + // 添加设置 + async _addSetting() { + await this._loadSettings() + this.addSettingTab(new SmmSettingTab(this.app, this)) + } + + // 加载设置 + async _loadSettings() { + const data = await this.loadData() + this.settings = Object.assign({}, DEFAULT_SETTINGS, data || {}) + const obLang = getLanguage() + const target = langList.find( + item => item.value === obLang || item.alias === obLang + ) + this.settings.lang = target ? target.value : 'en' + } + + // 保存设置 + async _saveSettings() { + await this.saveData(this.settings) + } + + // 打补丁,拦截默认的打开方法 + _registerMonkeyPatches() { + // 防止其他插件或 Obsidian 核心代码通过 getActiveViewOfType 获取到 SmmEditView 时产生冲突(例如误判为 Markdown 视图) + const key = 'https://github.com/wanglin2/mind-map' + this.register( + around(Workspace.prototype, { + getActiveViewOfType(old) { + return dedupe(key, old, function(...args) { + const result = old && old.apply(this, args) + const maybeLinkView = this.app?.workspace?.activeLeaf?.view + if (!maybeLinkView || !(maybeLinkView instanceof SmmEditView)) + return result + }) + } + }) + ) + // 背景:Obsidian 的嵌套工作区(如拆分窗口或某些插件创建的容器)可能导致 WorkspaceLeaf 的根节点获取异常。原始 getRoot() 可能返回非最顶层的容器 + /* + 修复逻辑:1.先调用原始 getRoot() 获取当前层级的根节点 top + 2.检查 top.getRoot 方法是否与当前实例的 getRoot 相同: + 2.1:如果相同,说明 top 已是最顶层根节点,直接返回 + 2.2:如果不同,说明 top 仍是某个子容器,需递归调用 top.getRoot() 继续向上查找 + */ + // 如果该插件已存在,则跳过补丁(因为 hover-editor 已实现相同功能),避免冲突 + if (!this.app.plugins?.plugins?.['obsidian-hover-editor']) { + this.register( + around(WorkspaceLeaf.prototype, { + getRoot(old) { + return function() { + const top = old.call(this) + return top.getRoot === this.getRoot ? top : top.getRoot() + } + } + }) + ) + } + // 通过修改 Obsidian 核心的 WorkspaceLeaf.setViewState 方法,强制将特定文件定向到自定义视图 + const self = this + this.register( + around(WorkspaceLeaf.prototype, { + detach(next) { + return function() { + return next.apply(this) + } + }, + setViewState(next) { + return function(state, ...rest) { + // 手动将smm视图切换为md视图不用拦截、md的预览和源码视图也不拦截 + if ( + state.state?.isSwitchToMarkdownViewFromSmmView || + ['preview', 'source'].includes(state.state?.mode) + ) { + return next.apply(this, [state, ...rest]) + } + if ( + self._loaded && + state.type === 'markdown' && + state.state?.file + ) { + if (self._isSmmFile(state.state.file)) { + if (rest && rest[0] && rest[0].subpath) { + self.fileToSubpathMap[state.state.file] = rest[0].subpath + } + const newState = { + ...state, + type: SMM_VIEW_TYPE + } + return next.apply(this, [newState, ...rest]) + } + } + return next.apply(this, [state, ...rest]) + } + } + }) + ) + // 在md视图下的smm文件右上角菜单增加切换为思维导图菜单 + this.register( + around(MarkdownView.prototype, { + onPaneMenu(next) { + return function(menu, source) { + const res = next.apply(this, [menu, source]) + if (self._isSmmFile(this.file)) { + if (source === 'more-options') { + // 打开为思维导图文档 + menu.addItem(item => + item + .setTitle(self._t('action.openAsMindMap')) + .setIcon('document') + .setSection('pane') + .onClick(() => { + self._setSmmView(this.leaf) + }) + ) + } + } else { + if (source === 'more-options') { + // 预览为思维导图 + menu.addItem(item => + item + .setTitle(self._t('action.previewAsMindMap')) + .setIcon('smm-icon') + .setSection('pane') + .onClick(() => { + let previewMindMap = new PreviewMindMap({ + plugin: self, + file: this.file, + onClose: () => { + previewMindMap = null + } + }) + }) + ) + } + } + return res + } + } + }) + ) + } + + // 切换到思维导图视图 + _switchToSmmAfterLoad() { + this.app.workspace.onLayoutReady(async () => { + let leaf + const markdownLeaf = this.app.workspace.getLeavesOfType('markdown') + for (leaf of markdownLeaf) { + if ( + leaf.view instanceof MarkdownView && + leaf.view.file && + this._isSmmFile(leaf.view.file) + ) { + this._setSmmView(leaf) + } + } + }) + } + + // 设置思维导图视图状态 + async _setSmmView(leaf) { + await leaf.setViewState({ + type: SMM_VIEW_TYPE, + state: leaf.view.getState(), + popstate: true + }) + } + + // 判断文件是否为思维导图 + _isSmmFile(file) { + if (!file) { + return false + } + const isString = typeof file === 'string' + // 统一获取文件路径 + const filePath = isString ? file : file.path + if (filePath.endsWith('.smm.md')) { + return true + } + let cache = null + if (isString) { + cache = this.app.metadataCache.getCache(file) + } else { + if (file.extension === SMM_VIEW_TYPE) { + return true + } + cache = this.app.metadataCache.getFileCache(file) + } + if (cache?.frontmatter?.tags?.contains(SMM_TAG)) { + return true + } + if (/\.smm.*\.md$/.test(filePath)) { + return true + } + return false + } + + // 设置思维导图文件图标 + _setCustomFileIcon() { + if (typeof this.app.vault.setConfigFileIcon === 'function') { + this.app.vault.setConfigFileIcon('smm.md', 'smm-icon') + } else { + } + } + + // 创建状态栏子元素 + _initStatusBar() { + // 创建状态栏主元素 + this.statusBarItem = this.addStatusBarItem() + this.statusBarItem.empty() + this.statusBarItem.style.display = 'none' // 默认隐藏 + + // 创建专门用于显示 smm 文件状态的子元素 + this.smmFileStatus = this.statusBarItem.createEl('div', { + cls: 'smm-file-status' + }) + + // 监听文件打开和视图变化 + this.registerEvent( + this.app.workspace.on('file-open', this._updateStatusBar.bind(this)) + ) + + this.registerEvent( + this.app.workspace.on( + 'active-leaf-change', + this._updateStatusBar.bind(this) + ) + ) + + // 初始更新 + this._updateStatusBar() + } + + // 更新状态栏显示 + _updateStatusBar() { + const activeFile = this.app.workspace.getActiveFile() + + // 检查是否是 smm 文件 + const isSmmFile = activeFile && this._isSmmFile(activeFile) + + // 获取状态栏容器 + const statusBar = this.app.statusBar.containerEl + + // 更新状态栏可见性 + if (isSmmFile) { + this.statusBarItem.style.display = 'block' + // 添加隐藏默认状态栏的类 + statusBar.classList.add('smm-file-status-active') + } else { + this.statusBarItem.style.display = 'none' + // 移除隐藏类 + statusBar.classList.remove('smm-file-status-active') + } + } + + // 确保目录存在 + async _ensureDirectoryExists(dirPath) { + if (!dirPath) return + const { vault } = this.app + // 检查目录是否存在 + const dir = vault.getAbstractFileByPath(dirPath) + if (!dir) { + // 递归创建目录 + await vault.createFolder(dirPath) + } + } + + // 多语言 + _t(val) { + return i18n.t(val) + } + + // 获取生成默认思维导图数据的配置 + _getCreateDefaultMindMapOptions() { + return { + theme: this.settings.defaultTheme, + layout: this.settings.defaultLayout, + rootNodeDefaultText: this._t('common.rootNodeDefaultText'), + secondNodeDefaultText: this._t('common.secondNodeDefaultText'), + branchNodeDefaultText: this._t('common.branchNodeDefaultText') + } + } + + // 根据参数生成默认思维导图数据 + _createDefaultMindMapData() { + return createDefaultMindMapData( + this._getCreateDefaultMindMapOptions(), + false + ) + } + + // 获取激活文件的目录 + _getActiveFileDirectory() { + // 获取当前激活文件 + const activeFile = this.app.workspace.getActiveFile() + if (!activeFile) { + return null + } + // 检查是否为文件(排除文件夹) + if (activeFile instanceof TFolder) { + return null + } + // 获取父目录路径 + const parent = activeFile.parent + if (!parent) { + return null + } + // 返回目录路径(Vault 相对路径) + return parent.path + } + + // 获取ob是否是暗黑模式 + _getObIsDark() { + return document.body.classList.contains('theme-dark') + } + + // 卸载时清理 + onunload() { + this.app.workspace.detachLeavesOfType(SMM_VIEW_TYPE) + this.markdownPostProcessor.destroy() + // 清理状态栏 + this.statusBarItem?.remove() + } +} diff --git a/plugin/ob/MarkdownPostProcessor.js b/plugin/ob/MarkdownPostProcessor.js new file mode 100644 index 0000000..a5d66c1 --- /dev/null +++ b/plugin/ob/MarkdownPostProcessor.js @@ -0,0 +1,265 @@ +import { TFile } from 'obsidian' +import { parseMarkdownText } from './metadataAndMarkdown.js' +import { dataURItoBlob } from './utils.js' +import LZString from 'lz-string' + +export default class MarkdownPostProcessor { + constructor(plugin) { + this.plugin = plugin + + this.urlCache = new Map() // 文件路径 -> 图片URL的缓存 + this.imageElements = new Map() // 文件路径 -> 图片元素集合 + + // 绑定事件处理器 + this.handleFileModify = this.handleFileModify.bind(this) + this.handleFileDelete = this.handleFileDelete.bind(this) + + // 注册文件监听 + plugin.app.vault.on('modify', this.handleFileModify) + plugin.app.vault.on('delete', this.handleFileDelete) + } + + destroy() { + // 清理事件监听 + this.plugin.app.vault.off('modify', this.handleFileModify) + this.plugin.app.vault.off('delete', this.handleFileDelete) + + // 释放所有URL对象 + this.urlCache.forEach(url => URL.revokeObjectURL(url)) + this.urlCache.clear() + this.imageElements.clear() + } + + async handleFileModify(file) { + if (!(file instanceof TFile) || !this.plugin._isSmmFile(file)) return + + try { + if (!this.urlCache.has(file.path)) { + return + } + // 重新生成图片URL + const data = await this.plugin.app.vault.read(file) + const parsedata = parseMarkdownText(data) + const svgBlob = dataURItoBlob( + LZString.decompressFromBase64(parsedata.svgdata) + ) + const newUrl = URL.createObjectURL(svgBlob) + + // 更新缓存 + const oldUrl = this.urlCache.get(file.path) + if (oldUrl) URL.revokeObjectURL(oldUrl) + this.urlCache.set(file.path, newUrl) + + // 更新所有关联的图片元素 + const elements = this.imageElements.get(file.path) || new Set() + elements.forEach(img => { + img.src = newUrl + }) + } catch (error) { + console.error('更新图片失败:', error) + } + } + + handleFileDelete(file) { + if (!(file instanceof TFile)) return + + // 清理被删除文件的资源 + const url = this.urlCache.get(file.path) + if (url) { + URL.revokeObjectURL(url) + this.urlCache.delete(file.path) + this.imageElements.delete(file.path) + } + } + + register() { + this.plugin.registerMarkdownPostProcessor( + this._markdownPostProcessor.bind(this) + ) + } + + async _markdownPostProcessor(el, ctx) { + try { + // 特殊卡片处理 + if (this._isSpecialCard(el)) { + return this._processSpecialCard(el) + } + + // 模式检测与处理 + const embeddedItems = el.querySelectorAll('.internal-embed') + if (embeddedItems.length === 0) { + await this._processEditMode(el, ctx) + } else { + await this._processReadingMode(embeddedItems, ctx) + } + } catch (error) { + console.error('Markdown处理失败:', error) + } + } + + _isSpecialCard(el) { + return ( + el.hasClass('components--DynamicDataView-PageCardCoverPreviewContent') && + el.children[0]?.getAttribute('data-heading') === 'metadata' && + el.children[2]?.getAttribute('data-heading') === 'svgdata' && + el.children[4]?.getAttribute('data-heading') === 'linkdata' + ) + } + + _processSpecialCard(el) { + el.classList.add('smmMindCard') + const svgdata = el.children[3].children[0].innerHTML + const url = URL.createObjectURL(dataURItoBlob(svgdata)) + + const img = this._createSvgImageElement(url) + el.replaceChildren(img) + } + + async _processEditMode(el, ctx) { + const file = this.plugin.app.vault.getAbstractFileByPath(ctx.sourcePath) + if (!(file instanceof TFile) || !this.plugin._isSmmFile(file)) return + if (ctx.remainingNestLevel !== undefined && ctx.remainingNestLevel < 4) + return + + let containerEl = this._findValidContainer(ctx.containerEl) + if (!containerEl || this._shouldSkipContainer(containerEl)) return + + try { + const data = await this.plugin.app.vault.read(file) + const img = await this._createImageFromFile(file, data) + containerEl.empty() + if (img) { + containerEl.appendChild(img) + } else { + const emptyDiv = containerEl.createEl('div', { text: '没有可预览图片' }) + emptyDiv.style.color = 'var(--text-muted)' + emptyDiv.style.border = '1px dashed var(--text-muted)' + emptyDiv.style.padding = '10px' + emptyDiv.style.borderRadius = '4px' + emptyDiv.style.textAlign = 'center' + emptyDiv.addEventListener('dblclick', () => { + const newWindow = this.plugin.settings.embedDblClickNewWindow + this.plugin.app.workspace.openLinkText(file?.path, '', newWindow) + }) + } + if (containerEl.hasClass('markdown-embed')) { + containerEl.classList.remove('markdown-embed', 'inline-embed') + } + } catch (error) { + console.error(`处理编辑模式失败: ${file?.path}`, error) + } + } + + async _processReadingMode(embeddedItems, ctx) { + for (const item of embeddedItems) { + try { + const fname = item.getAttribute('src')?.split('#')[0] + if (!fname) continue + + const file = this.plugin.app.metadataCache.getFirstLinkpathDest( + fname, + ctx.sourcePath + ) + if (!(file instanceof TFile) || !this.plugin._isSmmFile(file)) continue + const data = await this.plugin.app.vault.read(file) + const img = await this._createImageFromFile(file, data) + if (img) { + item.parentElement?.replaceChild(img, item) + } + } catch (error) { + console.error('处理嵌入项失败', error) + } + } + } + + async _createImageFromFile(file, data) { + // 优先使用缓存 + if (this.urlCache.has(file.path)) { + const url = this.urlCache.get(file.path) + return this._createSvgImageElement(url, file.path) + } + + // 生成新URL并缓存 + const parsedata = parseMarkdownText(data) + if (!parsedata.svgdata) { + return null + } + const svgBlob = dataURItoBlob( + LZString.decompressFromBase64(parsedata.svgdata) + ) + const url = URL.createObjectURL(svgBlob) + this.urlCache.set(file.path, url) + + const img = this._createSvgImageElement(url, file.path) + return img + } + + _createSvgImageElement(url, filePath = '') { + const img = document.createElement('img') + img.src = url + img.draggable = false + + if (filePath) { + // 添加文件路径标识 + img.setAttribute('data-smm-file', filePath) + + // 注册双击打开源文件 + img.addEventListener('dblclick', () => { + const newWindow = this.plugin.settings.embedDblClickNewWindow + this.plugin.app.workspace.openLinkText(filePath, '', newWindow) + }) + + // 添加到元素追踪 + if (!this.imageElements.has(filePath)) { + this.imageElements.set(filePath, new Set()) + } + this.imageElements.get(filePath).add(img) + + // 元素卸载时清理 + const observer = new MutationObserver(() => { + if (!document.contains(img)) { + this.imageElements.get(filePath)?.delete(img) + observer.disconnect() + } + }) + observer.observe(document.body, { subtree: true, childList: true }) + } + + return img + } + + _findValidContainer(containerEl) { + const invalidClasses = [ + 'dataview', + 'cm-preview-code-block', + 'cm-embed-block' + ] + + while (containerEl) { + if (invalidClasses.some(cls => containerEl.classList.contains(cls))) { + return null + } + + if ( + containerEl.classList.contains('internal-embed') || + containerEl.classList.contains('markdown-embed') || + containerEl.classList.contains('markdown-reading-view') + ) { + return containerEl + } + + containerEl = containerEl.parentElement + } + + return null + } + + _shouldSkipContainer(containerEl) { + return ( + containerEl.hasAttribute('ready') || + ['dataview', 'cm-preview-code-block', 'cm-embed-block'].some(cls => + containerEl.classList.contains(cls) + ) + ) + } +} diff --git a/plugin/ob/PreviewMindMap.js b/plugin/ob/PreviewMindMap.js new file mode 100644 index 0000000..8afc6ec --- /dev/null +++ b/plugin/ob/PreviewMindMap.js @@ -0,0 +1,67 @@ +import { initPreviewModeApp } from '../src/main' + +export class PreviewMindMap { + constructor({ plugin, file, onClose }) { + this.app = plugin.app + this.plugin = plugin + this.file = file + this.onClose = onClose + + this.previewModeApp = null + this.container = document.createElement('div') + this.wrap = document.createElement('div') + this.container.appendChild(this.wrap) + this.container.style.cssText = ` + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 50; + background: rgba(0, 0, 0, 0.5); + ` + document.body.appendChild(this.container) + this._renderView() + } + + // 渲染思维导图 + async _renderView() { + const content = await this.app.vault.read(this.file) + this.previewModeApp = initPreviewModeApp(this.wrap, { + getInitMindMapData: () => { + return content + }, + getMindMapOptions: () => { + return { + readonly: true, + fit: true + } + }, + getFile: () => { + return this.file + }, + getSettings: () => { + return this.plugin.settings || {} + }, + getMindMapLocalConfig: () => { + const { mindMapLocalConfig, themeMode } = this.plugin.settings + const config = mindMapLocalConfig || {} + config.isDark = + themeMode === 'follow' + ? this.plugin._getObIsDark() + : themeMode === 'dark' + return config + } + }) + this.previewModeApp.$bus.$on('closePreviewMode', this._close.bind(this)) + } + + _close() { + this.previewModeApp.$destroy() + document.body.removeChild(this.container) + this.previewModeApp = null + this.container = null + this.wrap = null + this.onClose() + } +} diff --git a/plugin/ob/SmmSettingTab.js b/plugin/ob/SmmSettingTab.js new file mode 100644 index 0000000..7be2dd0 --- /dev/null +++ b/plugin/ob/SmmSettingTab.js @@ -0,0 +1,590 @@ +import { PluginSettingTab, Setting, Notice } from 'obsidian' +import themeList from 'simple-mind-map-plugin-themes/themeList' +import { layoutGroupList } from '../src/config' +import { GITHUB_ICON, DESK_TOP_ICON } from './constant' +import { DEFAULT_SETTINGS } from './constant' +import { SuggestionModal } from './SuggestionModal' + +const validateInteger = (value, defaultValue = 0, errorTip) => { + value = Number(value) + if (!Number.isNaN(value) && value > 0) { + return value + } else { + // 请输入大于0的数字 + new Notice(errorTip) + return defaultValue + } +} + +export default class SmmSettingTab extends PluginSettingTab { + constructor(app, plugin) { + super(app, plugin) + this.plugin = plugin + this.filePathSettings = null + this.imagePathSettings = null + this.imageSubPathSettings = null + this.attachmentPathSettings = null + this.attachmentSubPathSettings = null + this.compressImageOptionsMaxWidthSettings = null + this.compressImageOptionsMaxHeightSettings = null + this.compressImageOptionsQualitySettings = null + } + + display() { + const { containerEl } = this + containerEl.empty() + + this._addBaseSetting() + + this._addFileSaveSetting() + + this._addCompressSetting() + + this._addEmbedSetting() + + this._addHelpInfo() + } + + // 基本设置 + _addBaseSetting() { + const { containerEl } = this + + containerEl.createEl('h2', { text: '基础' }) + + // 自动保存时间设置 + new Setting(containerEl) + .setName(this.plugin._t('setting.autoSave.title')) // 自动保存时间 + .setDesc(this.plugin._t('setting.autoSave.desc')) // 无操作自动保存时间,单位:秒 + .addText(text => { + text + .setValue(String(this.plugin.settings.autoSaveTime)) + .onChange(async value => { + value = validateInteger( + value, + DEFAULT_SETTINGS.autoSaveTime, + this.plugin._t('tip.integerInputError') + ) + this.plugin.settings.autoSaveTime = value + await this.plugin._saveSettings() + }) + }) + + // 主题模式设置 + new Setting(containerEl) + .setName(this.plugin._t('setting.themeMode.title')) // 主题模式 + .setDesc(this.plugin._t('setting.themeMode.desc')) // '设置深色、浅色模式' + .addDropdown(dropdown => { + ;[ + { + name: this.plugin._t('setting.themeMode.option1'), // 跟随obsidian + value: 'follow' + }, + { + name: this.plugin._t('setting.themeMode.option2'), // 浅色模式 + value: 'light' + }, + { + name: this.plugin._t('setting.themeMode.option3'), // 深色模式 + value: 'dark' + } + ].forEach(item => { + dropdown.addOption(item.value, item.name) + }) + dropdown + .setValue(this.plugin.settings.themeMode) + .onChange(async value => { + this.plugin.settings.themeMode = value + await this.plugin._saveSettings() + }) + }) + + // 默认主题设置 + const allThemeList = [ + { + name: this.plugin._t('setting.theme.title'), // 默认主题 + value: 'default', + dark: false + }, + ...themeList + ].reverse() + // 默认主题 + new Setting(containerEl) + .setName(this.plugin._t('setting.theme.title')) + .setDesc(this.plugin._t('setting.theme.desc')) // '设置默认主题' + .addDropdown(dropdown => { + allThemeList.forEach(item => { + dropdown.addOption(item.value, item.name) + }) + dropdown + .setValue(this.plugin.settings.defaultTheme) + .onChange(async value => { + this.plugin.settings.defaultTheme = value + await this.plugin._saveSettings() + }) + }) + + // 默认结构设置 + const allLayoutList = [] + ;(layoutGroupList[this.plugin.settings.lang] || layoutGroupList.en).forEach( + item => { + allLayoutList.push( + ...item.list.map((item2, index) => { + return { + name: item.name + (item.list.length > 1 ? index + 1 : ''), + value: item2 + } + }) + ) + } + ) + // 默认结构 + new Setting(containerEl) + .setName(this.plugin._t('setting.layout.title')) + .setDesc(this.plugin._t('setting.layout.desc')) // '设置默认结构' + .addDropdown(dropdown => { + allLayoutList.forEach(item => { + dropdown.addOption(item.value, item.name) + }) + dropdown + .setValue(this.plugin.settings.defaultLayout) + .onChange(async value => { + this.plugin.settings.defaultLayout = value + await this.plugin._saveSettings() + }) + }) + } + + // 文件创建、保存相关设置 + _addFileSaveSetting() { + const { containerEl } = this + + containerEl.createEl('h2', { text: '文件' }) + + // 新建文件名的前缀 + new Setting(containerEl) + .setName(this.plugin._t('setting.file.title1')) // 新建思维导图的文件名前缀 + .setDesc(this.plugin._t('setting.file.desc1')) // 新建思维导图文件名默认的命名格式为:前缀 + 空格 + 日期时间戳 + .addText(text => { + text + .setValue(this.plugin.settings.fileNamePrefix) + .onChange(async value => { + this.plugin.settings.fileNamePrefix = value + await this.plugin._saveSettings() + }) + }) + + // 新建文件名的日期时间戳格式 + const fileNameDateFormatSetting = new Setting(containerEl) + .setName(this.plugin._t('setting.file.title2')) // 新建思维导图的文件名日期时间戳格式 + .setDesc(this.plugin._t('setting.file.desc2')) // 默认为:YYYY-MM-DD HH.mm.ss,实际示例:2025-01-01 23.59.59,如你不清楚该格式的具体含义及如何修改,请参考:https://day.js.org/docs/en/parse/string-format + .addText(text => { + text + .setValue(this.plugin.settings.fileNameDateFormat) + .onChange(async value => { + this.plugin.settings.fileNameDateFormat = value + await this.plugin._saveSettings() + }) + }) + fileNameDateFormatSetting.settingEl.className += + ' smm-setting-item-enable-select' + + // 文件存储位置 + new Setting(containerEl) + .setName(this.plugin._t('setting.folder.title4')) // 文件存储位置 + .setDesc(this.plugin._t('setting.folder.desc4')) // 设置SimpleMindMap文件存储位置,默认为仓库根路径 + .addDropdown(dropdown => { + this._getFilePathOptions().forEach(item => { + dropdown.addOption(item.value, item.name) + }) + dropdown + .setValue(this.plugin.settings.filePathType) + .onChange(async value => { + this.plugin.settings.filePathType = value + await this.plugin._saveSettings() + this._updateFilePathSettingsVisibility() + }) + }) + // 文件存储路径设置 + this.filePathSettings = new Setting(containerEl) + .setName(this.plugin._t('setting.folder.title1')) // 文件存储路径 + .setDesc(this.plugin._t('setting.folder.desc1')) // 设置SimpleMindMap文件存储路径,默认为仓库根路径 + .addText(text => { + text.setValue(this.plugin.settings.filePath).onChange(async value => { + this.plugin.settings.filePath = value + await this.plugin._saveSettings() + }) + this._addFolderSelectBtn(text, selected => { + this.plugin.settings.filePath = selected + this.plugin._saveSettings() + }) + }) + this.filePathSettings.settingEl.className += ' smm-setting-sub-item' + this._updateFilePathSettingsVisibility() + + // 图片存储位置 + new Setting(containerEl) + .setName(this.plugin._t('setting.folder.title5')) // 图片存储位置 + .setDesc(this.plugin._t('setting.folder.desc5')) // 图片存储位置 + .addDropdown(dropdown => { + this._getFilePathOptions(true).forEach(item => { + dropdown.addOption(item.value, item.name) + }) + dropdown + .setValue(this.plugin.settings.imagePathType) + .onChange(async value => { + this.plugin.settings.imagePathType = value + await this.plugin._saveSettings() + this._updateImagePathSettingsVisibility() + }) + }) + // 自定义图片存储目录 + this.imagePathSettings = new Setting(containerEl) + .setName(this.plugin._t('setting.folder.title2')) // 图片存储路径 + .setDesc(this.plugin._t('setting.folder.desc2')) // 设置上传的图片文件(节点图片、背景图片)存储路径 + .addText(text => { + text.setValue(this.plugin.settings.imagePath).onChange(async value => { + this.plugin.settings.imagePath = value + await this.plugin._saveSettings() + }) + this._addFolderSelectBtn(text, selected => { + this.plugin.settings.imagePath = selected + this.plugin._saveSettings() + }) + }) + this.imagePathSettings.settingEl.className += ' smm-setting-sub-item' + // 自定义子文件夹 + this.imageSubPathSettings = new Setting(containerEl) + .setName(this.plugin._t('setting.folder.title6')) // 图片存储路径 + .setDesc(this.plugin._t('setting.folder.desc6')) // 设置上传的图片文件(节点图片、背景图片)存储路径 + .addText(text => { + text + .setValue(this.plugin.settings.imageSubPath) + .onChange(async value => { + this.plugin.settings.imageSubPath = value + await this.plugin._saveSettings() + }) + this._addFolderSelectBtn(text, selected => { + this.plugin.settings.imageSubPath = selected + this.plugin._saveSettings() + }) + }) + this.imageSubPathSettings.settingEl.className += ' smm-setting-sub-item' + this._updateImagePathSettingsVisibility() + + // 附件存储位置 + new Setting(containerEl) + .setName(this.plugin._t('setting.folder.title7')) + .setDesc(this.plugin._t('setting.folder.desc7')) + .addDropdown(dropdown => { + this._getFilePathOptions(true).forEach(item => { + dropdown.addOption(item.value, item.name) + }) + dropdown + .setValue(this.plugin.settings.attachmentPathType) + .onChange(async value => { + this.plugin.settings.attachmentPathType = value + await this.plugin._saveSettings() + this._updateAttachmentPathSettingsVisibility() + }) + }) + // 附件存储路径设置 + this.attachmentPathSettings = new Setting(containerEl) + .setName(this.plugin._t('setting.folder.title3')) + .setDesc(this.plugin._t('setting.folder.desc3')) + .addText(text => { + text + .setValue(this.plugin.settings.attachmentPath) + .onChange(async value => { + this.plugin.settings.attachmentPath = value + await this.plugin._saveSettings() + }) + this._addFolderSelectBtn(text, selected => { + this.plugin.settings.attachmentPath = selected + this.plugin._saveSettings() + }) + }) + this.attachmentPathSettings.settingEl.className += ' smm-setting-sub-item' + // 自定义子文件夹 + this.attachmentSubPathSettings = new Setting(containerEl) + .setName(this.plugin._t('setting.folder.title6')) + .setDesc(this.plugin._t('setting.folder.desc6')) + .addText(text => { + text + .setValue(this.plugin.settings.attachmentSubPath) + .onChange(async value => { + this.plugin.settings.attachmentSubPath = value + await this.plugin._saveSettings() + }) + this._addFolderSelectBtn(text, selected => { + this.plugin.settings.attachmentSubPath = selected + this.plugin._saveSettings() + }) + }) + this.attachmentSubPathSettings.settingEl.className += + ' smm-setting-sub-item' + this._updateAttachmentPathSettingsVisibility() + } + + // 图片压缩设置 + _addCompressSetting() { + const { containerEl } = this + + containerEl.createEl('h2', { text: '图片压缩' }) + + // 是否压缩图片设置 + new Setting(containerEl) + .setName(this.plugin._t('setting.compress.title1')) // 是否压缩图片 + .setDesc(this.plugin._t('setting.compress.desc1')) // 设置上传的图片文件(节点图片、背景图片)存储路径 + .addToggle(toggle => { + toggle + .setValue(this.plugin.settings.compressImage) + .onChange(async value => { + this.plugin.settings.compressImage = value + await this.plugin._saveSettings() + this._updateCompressImageSettingsVisibility() + }) + }) + + // 压缩参数设置 + this.compressImageOptionsMaxWidthSettings = new Setting(containerEl) + .setName(this.plugin._t('setting.compress.title2')) // 最大压缩宽度 + .setDesc(this.plugin._t('setting.compress.desc2')) // 设置图片压缩后的最大宽度 + .addText(text => { + text + .setValue(String(this.plugin.settings.compressImageOptionsMaxWidth)) + .onChange(async value => { + value = validateInteger( + value, + DEFAULT_SETTINGS.compressImageOptionsMaxWidth, + this.plugin._t('tip.integerInputError') + ) + this.plugin.settings.compressImageOptionsMaxWidth = value + await this.plugin._saveSettings() + }) + }) + this.compressImageOptionsMaxWidthSettings.settingEl.className += + ' smm-setting-sub-item' + this.compressImageOptionsMaxHeightSettings = new Setting(containerEl) + .setName(this.plugin._t('setting.compress.title3')) // 最大压缩高度 + .setDesc(this.plugin._t('setting.compress.desc3')) // 设置图片压缩后的最大高度 + .addText(text => { + text + .setValue(String(this.plugin.settings.compressImageOptionsMaxHeight)) + .onChange(async value => { + value = validateInteger( + value, + DEFAULT_SETTINGS.compressImageOptionsMaxHeight, + this.plugin._t('tip.integerInputError') + ) + this.plugin.settings.compressImageOptionsMaxHeight = value + await this.plugin._saveSettings() + }) + }) + this.compressImageOptionsMaxHeightSettings.settingEl.className += + ' smm-setting-sub-item' + this.compressImageOptionsQualitySettings = new Setting(containerEl) + .setName(this.plugin._t('setting.compress.title4')) // 图片质量 + .setDesc( + `${this.plugin._t('setting.compress.desc4')},${this.plugin._t( + 'setting.compress.curValue' + )}: ${this.plugin.settings.compressImageOptionsQuality}` + ) // 显示当前值 + .addSlider(slider => + slider + .setLimits(0, 1, 0.1) // 最小值0,最大值1,步长0.1 + .setValue(this.plugin.settings.compressImageOptionsQuality) + .onChange(async value => { + this.plugin.settings.compressImageOptionsQuality = value + this.compressImageOptionsQualitySettings?.setDesc( + `${this.plugin._t('setting.compress.desc4')},${this.plugin._t( + 'setting.compress.curValue' + )}: ${value}` + ) + await this.plugin._saveSettings() + }) + ) + .addExtraButton(button => + button + .setIcon('reset') + .setTooltip(this.plugin._t('setting.compress.reset')) + .onClick(async () => { + const defaultValue = DEFAULT_SETTINGS.compressImageOptionsQuality + this.plugin.settings.compressImageOptionsQuality = defaultValue + const sliderEl = this.compressImageOptionsQualitySettings + ?.components[0] + if (sliderEl) { + sliderEl.setValue(defaultValue) + this.plugin.settings.compressImageOptionsQuality = defaultValue + this.compressImageOptionsQualitySettings?.setDesc( + `${this.plugin._t( + 'setting.compress.curValue' + )}: ${defaultValue}` + ) + } + await this.plugin._saveSettings() + }) + ) + this.compressImageOptionsQualitySettings.settingEl.className += + ' smm-setting-sub-item' + this._updateCompressImageSettingsVisibility() + } + + // 嵌入设置 + _addEmbedSetting() { + const { containerEl } = this + + containerEl.createEl('h2', { text: '嵌入' }) + + // 嵌入预览的图像背景是否透明 + new Setting(containerEl) + .setName(this.plugin._t('setting.embed.title2')) // 嵌入预览的图像背景是否透明 + .setDesc(this.plugin._t('setting.embed.desc2')) // 嵌入预览的图像背景是否透明 + .addToggle(toggle => { + toggle + .setValue(this.plugin.settings.compressImageIsTransparent) + .onChange(async value => { + this.plugin.settings.compressImageIsTransparent = value + await this.plugin._saveSettings() + }) + }) + + // 嵌入预览双击是否新窗口打开 + new Setting(containerEl) + .setName(this.plugin._t('setting.embed.title1')) // 嵌入预览双击是否新窗口打开 + .setDesc(this.plugin._t('setting.embed.desc1')) // ![[]]格式嵌入md文档时双击预览图像是否新窗口打开文件 + .addToggle(toggle => { + toggle + .setValue(this.plugin.settings.embedDblClickNewWindow) + .onChange(async value => { + this.plugin.settings.embedDblClickNewWindow = value + await this.plugin._saveSettings() + }) + }) + } + + // 给目录输入框控件添加选择按钮 + _addFolderSelectBtn(text, callback = () => {}) { + const inputEl = text.inputEl + const suggestionButton = inputEl.parentElement?.createEl('button', { + text: this.plugin._t('setting.button.select'), + cls: 'suggestion-button' + }) + suggestionButton?.addEventListener('click', () => { + new SuggestionModal({ + plugin: this.plugin, + type: 'folder', + app: this.app, + onSelect: selected => { + text.setValue(selected) + inputEl.focus() + callback(selected) + } + }).open() + }) + } + + // 获取文件路径选项 + _getFilePathOptions(full = false) { + const res = [ + { + name: this.plugin._t('setting.folder.option1'), // 仓库的根目录 + value: 'root' + }, + { + name: this.plugin._t('setting.folder.option2'), // 指定文件夹 + value: 'custom' + }, + { + name: this.plugin._t('setting.folder.option3'), // 当前文件所在的文件夹 + value: 'currentFileFolder' + } + ] + if (full) { + res.push({ + name: this.plugin._t('setting.folder.option4'), // 当前文件所在的文件夹的子文件夹 + value: 'currentFileFolderSubFolder' + }) + } + return res + } + + // 切换文件路径设置的显示状态 + _updateFilePathSettingsVisibility() { + const isVisible = this.plugin.settings.filePathType === 'custom' + if (this.filePathSettings) { + this.filePathSettings.settingEl.style.display = isVisible ? '' : 'none' + } + } + + // 切换图片路径设置的显示状态 + _updateImagePathSettingsVisibility() { + const isVisible = this.plugin.settings.imagePathType === 'custom' + if (this.imagePathSettings) { + this.imagePathSettings.settingEl.style.display = isVisible ? '' : 'none' + } + const isVisibleSub = + this.plugin.settings.imagePathType === 'currentFileFolderSubFolder' + if (this.imageSubPathSettings) { + this.imageSubPathSettings.settingEl.style.display = isVisibleSub + ? '' + : 'none' + } + } + + // 切换附件路径设置的显示状态 + _updateAttachmentPathSettingsVisibility() { + const isVisible = this.plugin.settings.attachmentPathType === 'custom' + if (this.attachmentPathSettings) { + this.attachmentPathSettings.settingEl.style.display = isVisible + ? '' + : 'none' + } + const isVisibleSub = + this.plugin.settings.attachmentPathType === 'currentFileFolderSubFolder' + if (this.attachmentSubPathSettings) { + this.attachmentSubPathSettings.settingEl.style.display = isVisibleSub + ? '' + : 'none' + } + } + + // 切换压缩图片设置的显示状态 + _updateCompressImageSettingsVisibility() { + const isVisible = this.plugin.settings.compressImage + if (this.compressImageOptionsMaxWidthSettings) { + this.compressImageOptionsMaxWidthSettings.settingEl.style.display = isVisible + ? '' + : 'none' + } + if (this.compressImageOptionsMaxHeightSettings) { + this.compressImageOptionsMaxHeightSettings.settingEl.style.display = isVisible + ? '' + : 'none' + } + if (this.compressImageOptionsQualitySettings) { + this.compressImageOptionsQualitySettings.settingEl.style.display = isVisible + ? '' + : 'none' + } + } + + // 添加辅助信息 + _addHelpInfo() { + const { containerEl } = this + const linkEl = containerEl.createDiv('setting-item smm-setting-link-list') + linkEl.innerHTML = ` + + + ` + } +} diff --git a/plugin/ob/SuggestionModal.js b/plugin/ob/SuggestionModal.js new file mode 100644 index 0000000..3464d47 --- /dev/null +++ b/plugin/ob/SuggestionModal.js @@ -0,0 +1,40 @@ +import { SuggestModal } from 'obsidian' + +export class SuggestionModal extends SuggestModal { + constructor({ plugin, app, getSuggestions, onSelect, type }) { + super(app) + this.plugin = plugin + this.emptyStateText = this.plugin._t('tip.noMatchResult') + this.type = type // folder(选择目录) + if (this.type === 'folder') { + this.getSuggestions = this._queryFolders.bind(this) + } else { + this.getSuggestions = getSuggestions + } + this.onSelect = onSelect + } + + // 查询目录 + _queryFolders(query) { + const list = this.app.vault.getAllFolders() + return list + .filter(item => { + return item.path.toLowerCase().includes(query) + }) + .map(item => { + return item.path + }) + } + + getSuggestions(query) { + return this.getSuggestions(query) + } + + renderSuggestion(suggestion, el) { + el.createEl('div', { text: suggestion }) + } + + onChooseSuggestion(suggestion) { + this.onSelect(suggestion) + } +} diff --git a/plugin/ob/constant.js b/plugin/ob/constant.js new file mode 100644 index 0000000..a1ee03c --- /dev/null +++ b/plugin/ob/constant.js @@ -0,0 +1,74 @@ +export const SMM_VIEW_TYPE = 'smm' + +export const SMM_TAG = 'simplemindmap' + +export const getDefaultSmmData = (options = {}) => { + const theme = options.theme || 'classic13' + const layout = options.layout || 'logicalStructure' + const rootNodeDefaultText = options.rootNodeDefaultText || 'Root Node' // 根节点 + const secondNodeDefaultText = options.secondNodeDefaultText || 'Second Node' // 二级节点 + const branchNodeDefaultText = options.branchNodeDefaultText || 'Branch Node' // 分支主题 + return { + root: { + data: { text: rootNodeDefaultText }, + children: [ + { + data: { text: secondNodeDefaultText }, + children: [ + { data: { text: branchNodeDefaultText }, children: [] }, + { data: { text: branchNodeDefaultText }, children: [] } + ] + } + ] + }, + theme: { template: theme, config: {} }, + layout + } +} + +export const DEFAULT_SETTINGS = { + isFirstUse: true,// 是否是第一次使用插件 + fileNamePrefix: 'MindMap', // 新建思维导图的文件名前缀 + fileNameDateFormat: 'YYYY-MM-DD HH.mm.ss', // 新建思维导图的文件名日期时间戳格式 + lang: 'zh', // 语言 + themeMode: 'follow', // 主题模式 + defaultLayout: 'logicalStructure', // 默认布局 + defaultTheme: 'classic13', // 默认主题 + filePathType: 'root', // 文件存储位置 + filePath: '', // 文件存储路径 + imagePathType: 'currentFileFolder', // 图片存储位置 + imagePath: '', // 图片存储路径 + imageSubPath: '', // 自定义子文件夹 + attachmentPathType: 'currentFileFolder', // 附件存储位置 + attachmentPath: '', // 附件存储路径 + attachmentSubPath: '', // 自定义子文件夹 + compressImage: true, // 是否压缩图片 + compressImageOptionsMaxWidth: 1200, // 图片压缩后的最大宽度 + compressImageOptionsMaxHeight: 1200, // 图片压缩后的最大高度 + compressImageOptionsQuality: 0.8, // 图片质量 + attachmentPath: 'assets/files', // 附件存储路径 + compressImageIsTransparent: false, // 嵌入预览的图像背景是否透明 + embedDblClickNewWindow: true, // 嵌入预览双击是否新窗口打开 + autoSaveTime: 5, // 无操作自动保存时间,单位s + mindMapConfig: null, + mindMapLocalConfig: null, + codeBlockInitHeight: 300 // smm代码块方式嵌入时初始高度,单位:px +} + +export const SIDE_BAR_ICON = `` + +export const SAVE_ICON = `` + +export const IMPORT_ICON = `` + +export const EXPORT_ICON = `` + +export const OUTLINE_ICON = `` + +export const MINDMAP_ICON = `` + +export const PRINT_ICON = `` + +export const GITHUB_ICON = `` + +export const DESK_TOP_ICON = `` \ No newline at end of file diff --git a/plugin/ob/metadataAndMarkdown.js b/plugin/ob/metadataAndMarkdown.js new file mode 100644 index 0000000..42d596e --- /dev/null +++ b/plugin/ob/metadataAndMarkdown.js @@ -0,0 +1,121 @@ +import { getDefaultSmmData, SMM_TAG } from './constant' +import LZString from 'lz-string' + +export const parseMarkdownText = text => { + const result = { + metadata: { path: '', tags: [], content: '' }, + svgdata: '', + linkdata: [] + } + + // Split text into lines + const lines = text.split('\n') + let currentSection = '' + let inCodeBlock = false + let inYamlHeader = false + let codeBlockContent = [] + + for (const line of lines) { + // Handle YAML header + if (line.trim() === '---') { + inYamlHeader = !inYamlHeader + continue + } + + // Check for section headers + if (line.startsWith('# metadata')) { + currentSection = 'metadata' + continue + } else if (line.startsWith('# svgdata')) { + currentSection = 'svgdata' + continue + } else if (line.startsWith('# linkdata')) { + currentSection = 'linkdata' + continue + } + + // Handle code blocks + if (line.trim() === '```metadata' || line.trim() === '```svgData') { + inCodeBlock = true + continue + } else if (line.trim() === '```' && inCodeBlock) { + inCodeBlock = false + if (currentSection === 'metadata') { + result.metadata.content = codeBlockContent.join('\n') + codeBlockContent = [] + } else if (currentSection === 'svgdata') { + result.svgdata = codeBlockContent.join('\n') + if (result.svgdata == undefined) { + result.svgdata = '' + } + codeBlockContent = [] + } + continue + } + + // Collect content + if (inCodeBlock) { + codeBlockContent.push(line) + } else if (currentSection === 'linkdata' && line.startsWith('- ')) { + result.linkdata.push(line.replace('- ', '').trim()) + } else if (inYamlHeader) { + // Parse YAML metadata + if (line.startsWith('path:')) { + result.metadata.path = line.split(':')[1].trim() + } else if (line.startsWith(' -')) { + result.metadata.tags.push(line.replace(' -', '').trim()) + } + } + } + + return result +} + +export const assembleMarkdownText = obj => { + let result = '---\n' + + // Assemble YAML header + result += `path: ${obj.metadata.path}\n` + result += 'tags:\n' + for (const tag of obj.metadata.tags) { + result += ` - ${tag}\n` + } + result += '---\n' + + // Assemble metadata section + result += '# metadata\n' + result += '```metadata\n' + result += obj.metadata.content + result += '\n```\n' + + // Assemble svgdata section + result += '# svgdata\n' + result += '```svgData\n' + result += obj.svgdata + result += '\n```\n' + + // Assemble linkdata section + result += '# linkdata\n' + for (const item of obj.linkdata) { + result += `- ${item}\n` + } + + return result +} + +export const createDefaultMindMapData = (options, isCompress = true) => { + const content = JSON.stringify(getDefaultSmmData(options)) + return isCompress ? LZString.compressToBase64(content) : content +} + +export const createDefaultText = (filePath, options) => { + return assembleMarkdownText({ + metadata: { + path: `${filePath || ''}`, + tags: [SMM_TAG], + content: createDefaultMindMapData(options) + }, + svgdata: '', + linkdata: [] + }) +} diff --git a/plugin/ob/utils.js b/plugin/ob/utils.js new file mode 100644 index 0000000..c2efed7 --- /dev/null +++ b/plugin/ob/utils.js @@ -0,0 +1,65 @@ +// 极简的深拷贝 +export const simpleDeepClone = data => { + try { + return JSON.parse(JSON.stringify(data)) + } catch (error) { + return null + } +} + +export const generateRandomString = ( + length = 12, + charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' +) => { + // 参数验证 + if (typeof length !== 'number' || length <= 0) { + throw new Error('长度必须是正整数') + } + if (typeof charSet !== 'string' || charSet.length === 0) { + throw new Error('字符集不能为空') + } + + // 使用加密安全的随机数生成器(如果可用) + let randomValues + if (typeof crypto !== 'undefined' && crypto.getRandomValues) { + randomValues = new Uint32Array(length) + crypto.getRandomValues(randomValues) + } else { + randomValues = new Array(length) + .fill(0) + .map(() => Math.random() * 0x100000000) + } + + // 生成随机字符串 + let result = '' + for (let i = 0; i < length; i++) { + const randomIndex = randomValues[i] % charSet.length + result += charSet.charAt(randomIndex) + } + + return result +} + +export const hideTargetMenu = (menu, text = '在新窗口中打开') => { + // 隐藏特定默认菜单项 + menu.items.forEach(item => { + // 通过菜单项标题或ID识别要隐藏的项 + if (item.title === text || item.dom?.innerText?.includes(text)) { + item.dom.hide() + } + }) +} + +export const dataURItoBlob = dataURI => { + const byteString = atob(dataURI.split(',')[1]) + const mimeString = dataURI + .split(',')[0] + .split(':')[1] + .split(';')[0] + const ab = new ArrayBuffer(byteString.length) + const ia = new Uint8Array(ab) + for (let i = 0; i < byteString.length; i++) { + ia[i] = byteString.charCodeAt(i) + } + return new Blob([ab], { type: mimeString }) +} diff --git a/plugin/package-lock.json b/plugin/package-lock.json new file mode 100644 index 0000000..080eba3 --- /dev/null +++ b/plugin/package-lock.json @@ -0,0 +1,12736 @@ +{ + "name": "simple-mind-map", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "simple-mind-map", + "version": "0.1.0", + "dependencies": { + "@toast-ui/editor": "^3.1.5", + "axios": "^1.7.9", + "dayjs": "^1.11.13", + "element-ui": "^2.15.1", + "i18next": "^25.2.1", + "katex": "^0.16.9", + "lz-string": "^1.5.0", + "monkey-around": "^3.0.0", + "simple-mind-map-plugin-themes": "^1.0.0", + "v-viewer": "^1.6.4", + "vue": "^2.6.14", + "vue-i18n": "^8.27.2", + "vue-template-compiler": "^2.6.14", + "vuex": "^3.6.2", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@babel/core": "^7.28.0", + "@babel/preset-env": "^7.28.0", + "@types/node": "^16.11.6", + "babel-loader": "^10.0.0", + "babel-plugin-component": "^1.1.1", + "buffer": "^6.0.3", + "builtin-modules": "3.3.0", + "css-loader": "^7.1.2", + "css-minimizer-webpack-plugin": "^7.0.2", + "file-loader": "^6.2.0", + "less": "^3.12.2", + "less-loader": "^7.1.0", + "markdown-it": "^13.0.1", + "markdown-it-checkbox": "^1.1.0", + "mini-css-extract-plugin": "^2.9.2", + "obsidian": "latest", + "sass": "^1.89.2", + "sass-loader": "^16.0.5", + "stream-browserify": "^3.0.0", + "string_decoder": "^1.3.0", + "terser-webpack-plugin": "^5.3.14", + "url-loader": "^4.1.1", + "util": "^0.12.5", + "vue-loader": "^15.9.8", + "webpack": "^5.98.0", + "webpack-cli": "^6.0.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.0.0-beta.35", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz", + "integrity": "sha512-vaC1KyIZSuyWb3Lj277fX0pxivyHwuDU4xZsofqgYAbkDxNieMg2vuhzP5AgMweMY7fCQUMTi+BgPqTLjkxXFg==", + "dev": true, + "dependencies": { + "@babel/types": "7.0.0-beta.35", + "lodash": "^4.2.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/parser/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator/node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", + "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz", + "integrity": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", + "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.0.tgz", + "integrity": "sha512-LOAozRVbqxEVjSKfhGnuLoE4Kz4Oc5UJzuvFUhSsQzdCdaAQu06mG8zDv2GFSerM62nImUZ7K92vxnQcLSDlCQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.0.tgz", + "integrity": "sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-classes": "^7.28.0", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.0", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-modules/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.0.0-beta.35", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.35.tgz", + "integrity": "sha512-y9XT11CozHDgjWcTdxmhSj13rJVXpa5ZXwjjOiTedjaM0ba5ItqdS02t31EhPl7HtOWxsZkYCCUNrSfrOisA6w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@codemirror/state": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", + "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", + "dev": true, + "peer": true, + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } + }, + "node_modules/@codemirror/view": { + "version": "6.37.2", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.37.2.tgz", + "integrity": "sha512-XD3LdgQpxQs5jhOOZ2HRVT+Rj59O4Suc7g2ULvZ+Yi8eCkickrkZ5JFuoDhs2ST1mNI5zSsNYgR3NGa4OUrbnw==", + "dev": true, + "peer": true, + "dependencies": { + "@codemirror/state": "^6.5.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", + "dev": true, + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "dev": true, + "peer": true + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@toast-ui/editor": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@toast-ui/editor/-/editor-3.2.2.tgz", + "integrity": "sha512-ASX7LFjN2ZYQJrwmkUajPs7DRr9FsM1+RQ82CfTO0Y5ZXorBk1VZS4C2Dpxinx9kl55V4F8/A2h2QF4QMDtRbA==", + "dependencies": { + "dompurify": "^2.3.3", + "prosemirror-commands": "^1.1.9", + "prosemirror-history": "^1.1.3", + "prosemirror-inputrules": "^1.1.3", + "prosemirror-keymap": "^1.1.4", + "prosemirror-model": "^1.14.1", + "prosemirror-state": "^1.3.4", + "prosemirror-view": "^1.18.7" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/codemirror": { + "version": "5.60.8", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", + "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", + "dev": true, + "dependencies": { + "@types/tern": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.18.126", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.126.tgz", + "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==", + "dev": true + }, + "node_modules/@types/tern": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", + "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", + "dev": true, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", + "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", + "dev": true, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", + "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", + "dev": true, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/async-validator": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", + "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", + "dependencies": { + "babel-runtime": "6.x" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/babel-helper-vue-jsx-merge-props": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" + }, + "node_modules/babel-loader": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz", + "integrity": "sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": "^18.20.0 || ^20.10.0 || >=22.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5.61.0" + } + }, + "node_modules/babel-loader/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-plugin-component": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz", + "integrity": "sha512-WUw887kJf2GH80Ng/ZMctKZ511iamHNqPhd9uKo14yzisvV7Wt1EckIrb8oq/uCz3B3PpAW7Xfl7AkTLDYT6ag==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "7.0.0-beta.35" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "optional": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001726", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz", + "integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "deprecated": "Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-js-compat": { + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", + "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", + "dev": true, + "dependencies": { + "browserslist": "^4.25.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "dev": true, + "peer": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-loader/node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/css-loader/node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/css-loader/node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/css-loader/node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/css-loader/node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/css-loader/node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/css-loader/node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/css-loader/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.2.tgz", + "integrity": "sha512-nBRWZtI77PBZQgcXMNqiIXVshiQOVLGSf2qX/WZfG8IQfMbeHUMXaBWQmiiSTmPJUflQxHjZjzAmuyO7tpL2Jg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "cssnano": "^7.0.4", + "jest-worker": "^29.7.0", + "postcss": "^8.4.40", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/cssnano": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.0.7.tgz", + "integrity": "sha512-evKu7yiDIF7oS+EIpwFlMF730ijRyLFaM2o5cTxRGJR9OKHKkc+qP443ZEVR9kZG0syaAJJCPJyfv5pbrxlSng==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^7.0.7", + "lilconfig": "^3.1.3" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/cssnano-preset-default": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.7.tgz", + "integrity": "sha512-jW6CG/7PNB6MufOrlovs1TvBTEVmhY45yz+bd0h6nw3h6d+1e+/TX+0fflZ+LzvZombbT5f+KC063w9VoHeHow==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.5", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.1", + "postcss-calc": "^10.1.1", + "postcss-colormin": "^7.0.3", + "postcss-convert-values": "^7.0.5", + "postcss-discard-comments": "^7.0.4", + "postcss-discard-duplicates": "^7.0.2", + "postcss-discard-empty": "^7.0.1", + "postcss-discard-overridden": "^7.0.1", + "postcss-merge-longhand": "^7.0.5", + "postcss-merge-rules": "^7.0.5", + "postcss-minify-font-values": "^7.0.1", + "postcss-minify-gradients": "^7.0.1", + "postcss-minify-params": "^7.0.3", + "postcss-minify-selectors": "^7.0.5", + "postcss-normalize-charset": "^7.0.1", + "postcss-normalize-display-values": "^7.0.1", + "postcss-normalize-positions": "^7.0.1", + "postcss-normalize-repeat-style": "^7.0.1", + "postcss-normalize-string": "^7.0.1", + "postcss-normalize-timing-functions": "^7.0.1", + "postcss-normalize-unicode": "^7.0.3", + "postcss-normalize-url": "^7.0.1", + "postcss-normalize-whitespace": "^7.0.1", + "postcss-ordered-values": "^7.0.2", + "postcss-reduce-initial": "^7.0.3", + "postcss-reduce-transforms": "^7.0.1", + "postcss-svgo": "^7.0.2", + "postcss-unique-selectors": "^7.0.4" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/cssnano-utils": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", + "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", + "dev": true, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", + "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-calc": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", + "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12 || ^20.9 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-colormin": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.3.tgz", + "integrity": "sha512-xZxQcSyIVZbSsl1vjoqZAcMYYdnJsIyG8OvqShuuqf12S88qQboxxEy0ohNCOLwVPXTU+hFHvJPACRL2B5ohTA==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.5", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-convert-values": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.5.tgz", + "integrity": "sha512-0VFhH8nElpIs3uXKnVtotDJJNX0OGYSZmdt4XfSfvOMrFw1jKfpwpZxfC4iN73CTM/MWakDEmsHQXkISYj4BXw==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.5", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-discard-comments": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.4.tgz", + "integrity": "sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-discard-duplicates": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", + "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", + "dev": true, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-discard-empty": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", + "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", + "dev": true, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-discard-overridden": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", + "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", + "dev": true, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-merge-longhand": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", + "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.5" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-merge-rules": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.5.tgz", + "integrity": "sha512-ZonhuSwEaWA3+xYbOdJoEReKIBs5eDiBVLAGpYZpNFPzXZcEE5VKR7/qBEQvTZpiwjqhhqEQ+ax5O3VShBj9Wg==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.5", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.1", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-minify-font-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", + "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-minify-gradients": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz", + "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==", + "dev": true, + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-minify-params": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.3.tgz", + "integrity": "sha512-vUKV2+f5mtjewYieanLX0xemxIp1t0W0H/D11u+kQV/MWdygOO7xPMkbK+r9P6Lhms8MgzKARF/g5OPXhb8tgg==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.5", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-minify-selectors": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz", + "integrity": "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-charset": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", + "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", + "dev": true, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-display-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", + "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-positions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", + "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-repeat-style": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", + "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-string": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", + "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-timing-functions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", + "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-unicode": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.3.tgz", + "integrity": "sha512-EcoA29LvG3F+EpOh03iqu+tJY3uYYKzArqKJHxDhUYLa2u58aqGq16K6/AOsXD9yqLN8O6y9mmePKN5cx6krOw==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.5", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-url": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", + "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-normalize-whitespace": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", + "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-ordered-values": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", + "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", + "dev": true, + "dependencies": { + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-reduce-initial": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.3.tgz", + "integrity": "sha512-RFvkZaqiWtGMlVjlUHpaxGqEL27lgt+Q2Ixjf83CRAzqdo+TsDyGPtJUbPx2MuYIJ+sCQc2TrOvRnhcXQfgIVA==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.5", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-reduce-transforms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", + "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-svgo": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.0.2.tgz", + "integrity": "sha512-5Dzy66JlnRM6pkdOTF8+cGsB1fnERTE8Nc+Eed++fOWo1hdsBptCsbG8UuJkgtZt75bRtMJIrPeZmtfANixdFA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.3.2" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/postcss-unique-selectors": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz", + "integrity": "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/stylehacks": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.5.tgz", + "integrity": "sha512-5kNb7V37BNf0Q3w+1pxfa+oiNPS++/b4Jil9e/kPDgrk1zjEd6uR7SZeJiYaLYH6RRSC1XX2/37OTeU/4FvuIA==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.5", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dompurify": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.7.tgz", + "integrity": "sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==" + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.179", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.179.tgz", + "integrity": "sha512-UWKi/EbBopgfFsc5k61wFpV7WrnnSlSzW/e2XcBmS6qKYTivZlLtoll5/rdqRTxGglGHkmkW0j0pFNJG10EUIQ==", + "dev": true + }, + "node_modules/element-ui": { + "version": "2.15.14", + "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.14.tgz", + "integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==", + "dependencies": { + "async-validator": "~1.8.1", + "babel-helper-vue-jsx-merge-props": "^2.0.0", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1" + }, + "peerDependencies": { + "vue": "^2.5.17" + } + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/i18next": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.2.1.tgz", + "integrity": "sha512-+UoXK5wh+VlE1Zy5p6MjcvctHXAhRwQKCxiJD8noKZzIXmnAX8gdHX5fLPA3MEVxEN4vbZkQFy8N0LyD9tUqPw==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { + "@babel/runtime": "^7.27.1" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", + "dev": true + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/katex": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz", + "integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/less": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", + "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "tslib": "^1.10.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-7.3.0.tgz", + "integrity": "sha512-Mi8915g7NMaLlgi77mgTTQvK022xKRQBIVDSyfl3ErTuBhmZBQab0mjeJjNNqGbdR+qrfTleKXqbGI4uEFavxg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/markdown-it": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-checkbox": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/markdown-it-checkbox/-/markdown-it-checkbox-1.1.0.tgz", + "integrity": "sha512-NkZVjnXo5G+cLNdi7DPZxICypBuxFE9F8sx3YGMZn+Cfizr8EZ/1TFUKl7ZnefF6cr1aFHbnQ5iA3rc4cp7EyA==", + "dev": true, + "dependencies": { + "underscore": "^1.8.2" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "optional": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/monkey-around": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/monkey-around/-/monkey-around-3.0.0.tgz", + "integrity": "sha512-jL6uY2lEAoaHxZep1cNRkCZjoIWY4g5VYCjriEWmcyHU7w8NU1+JH57xE251UVTohK0lCxMjv0ZV4ByDLIXEpw==" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/native-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.1.0.tgz", + "integrity": "sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw==", + "dev": true, + "optional": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "optional": true + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true + }, + "node_modules/normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/obsidian": { + "version": "1.8.7", + "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.8.7.tgz", + "integrity": "sha512-h4bWwNFAGRXlMlMAzdEiIM2ppTGlrh7uGOJS6w4gClrsjc+ei/3YAtU2VdFUlCiPuTHpY4aBpFJJW75S1Tl/JA==", + "dev": true, + "dependencies": { + "@types/codemirror": "5.60.8", + "moment": "2.29.4" + }, + "peerDependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "node_modules/orderedmap": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==" + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prosemirror-commands": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz", + "integrity": "sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-history": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.2.tgz", + "integrity": "sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g==", + "dependencies": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" + } + }, + "node_modules/prosemirror-inputrules": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz", + "integrity": "sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==", + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-keymap": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz", + "integrity": "sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==", + "dependencies": { + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" + } + }, + "node_modules/prosemirror-model": { + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.4.tgz", + "integrity": "sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ==", + "dependencies": { + "orderedmap": "^2.0.0" + } + }, + "node_modules/prosemirror-state": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", + "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "node_modules/prosemirror-transform": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz", + "integrity": "sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A==", + "dependencies": { + "prosemirror-model": "^1.0.0" + } + }, + "node_modules/prosemirror-view": { + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.1.tgz", + "integrity": "sha512-62qkYgSJIkwIMMCpuGuPzc52DiK1Iod6TWoIMxP4ja6BTD4yO8kCUL64PZ/WhH/dJ9fW0CDO39FhH1EMyhUFEg==", + "dependencies": { + "prosemirror-model": "^1.16.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dev": true, + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rope-sequence": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "1.89.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz", + "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==", + "dev": true, + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass-loader": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", + "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/simple-mind-map-plugin-themes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-mind-map-plugin-themes/-/simple-mind-map-plugin-themes-1.0.0.tgz", + "integrity": "sha512-v+L28HfRK1B+qw+76ueRGbbAxnKmGhVNuHL+oCWTE0qbdvaqSAszI+yOxqeTNXJmBgzrjeJXpJ831/gDiWUKaQ==", + "dependencies": { + "esbuild": "^0.17.15" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/style-mod": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", + "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", + "dev": true, + "peer": true + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/throttle-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", + "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "optional": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-browserslist-db/node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/v-viewer": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/v-viewer/-/v-viewer-1.7.4.tgz", + "integrity": "sha512-K3PQ8utnVXXBCa5IRXRAhk/m83fNIsK77gTSXqAmPJe8eDTaSY1nifAOWPUmQDjzuCxYfa14UjGftHR9MFV70Q==", + "dependencies": { + "lodash-es": "^4.17.21", + "viewerjs": "^1.11.6" + }, + "peerDependencies": { + "viewerjs": "^1.9.0", + "vue": "^2.0.0" + } + }, + "node_modules/viewerjs": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.11.6.tgz", + "integrity": "sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw==" + }, + "node_modules/vue": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz", + "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==", + "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.", + "dependencies": { + "@vue/compiler-sfc": "2.7.16", + "csstype": "^3.1.0" + } + }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "node_modules/vue-i18n": { + "version": "8.28.2", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.28.2.tgz", + "integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA==" + }, + "node_modules/vue-loader": { + "version": "15.11.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.11.1.tgz", + "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==", + "dev": true, + "dependencies": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "peerDependencies": { + "css-loader": "*", + "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "prettier": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/vue-loader/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/vue-loader/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/vue-loader/node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-style-loader/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/vue-style-loader/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/vue-style-loader/node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "node_modules/vue/node_modules/@vue/compiler-sfc": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz", + "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==", + "dependencies": { + "@babel/parser": "^7.23.5", + "postcss": "^8.4.14", + "source-map": "^0.6.1" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "node_modules/vue/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/vue/node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/vuex": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", + "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==", + "peerDependencies": { + "vue": "^2.0.0" + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.99.8", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.8.tgz", + "integrity": "sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", + "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.6.1", + "@webpack-cli/configtest": "^3.0.1", + "@webpack-cli/info": "^3.0.1", + "@webpack-cli/serve": "^3.0.1", + "colorette": "^2.0.14", + "commander": "^12.1.0", + "cross-spawn": "^7.0.3", + "envinfo": "^7.14.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^6.0.1" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.82.0" + }, + "peerDependenciesMeta": { + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "dependencies": { + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + } + } + }, + "@babel/compat-data": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "dev": true + }, + "@babel/core": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "dev": true, + "requires": { + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "requires": { + "@babel/types": "^7.27.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + } + }, + "@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/helper-module-imports": { + "version": "7.0.0-beta.35", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz", + "integrity": "sha512-vaC1KyIZSuyWb3Lj277fX0pxivyHwuDU4xZsofqgYAbkDxNieMg2vuhzP5AgMweMY7fCQUMTi+BgPqTLjkxXFg==", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.35", + "lodash": "^4.2.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "requires": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + } + }, + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "requires": { + "@babel/types": "^7.27.1" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==" + }, + "@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" + }, + "@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "dev": true, + "requires": { + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, + "requires": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/parser": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "requires": { + "@babel/types": "^7.28.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + } + }, + "@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + } + }, + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "requires": {} + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "requires": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + } + }, + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", + "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz", + "integrity": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", + "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.0" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.0.tgz", + "integrity": "sha512-LOAozRVbqxEVjSKfhGnuLoE4Kz4Oc5UJzuvFUhSsQzdCdaAQu06mG8zDv2GFSerM62nImUZ7K92vxnQcLSDlCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/preset-env": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.0.tgz", + "integrity": "sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-classes": "^7.28.0", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.0", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/runtime": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==" + }, + "@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" + }, + "dependencies": { + "@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + } + } + } + }, + "@babel/types": { + "version": "7.0.0-beta.35", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.35.tgz", + "integrity": "sha512-y9XT11CozHDgjWcTdxmhSj13rJVXpa5ZXwjjOiTedjaM0ba5ItqdS02t31EhPl7HtOWxsZkYCCUNrSfrOisA6w==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" + } + }, + "@codemirror/state": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", + "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", + "dev": true, + "peer": true, + "requires": { + "@marijn/find-cluster-break": "^1.0.0" + } + }, + "@codemirror/view": { + "version": "6.37.2", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.37.2.tgz", + "integrity": "sha512-XD3LdgQpxQs5jhOOZ2HRVT+Rj59O4Suc7g2ULvZ+Yi8eCkickrkZ5JFuoDhs2ST1mNI5zSsNYgR3NGa4OUrbnw==", + "dev": true, + "peer": true, + "requires": { + "@codemirror/state": "^6.5.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "@discoveryjs/json-ext": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", + "dev": true + }, + "@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "optional": true + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "dev": true, + "peer": true + }, + "@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "dev": true, + "optional": true, + "requires": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1", + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + } + }, + "@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "dev": true, + "optional": true + }, + "@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "dev": true, + "optional": true + }, + "@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "dev": true, + "optional": true + }, + "@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "dev": true, + "optional": true + }, + "@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "dev": true, + "optional": true + }, + "@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "dev": true, + "optional": true + }, + "@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "dev": true, + "optional": true + }, + "@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "dev": true, + "optional": true + }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "@toast-ui/editor": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@toast-ui/editor/-/editor-3.2.2.tgz", + "integrity": "sha512-ASX7LFjN2ZYQJrwmkUajPs7DRr9FsM1+RQ82CfTO0Y5ZXorBk1VZS4C2Dpxinx9kl55V4F8/A2h2QF4QMDtRbA==", + "requires": { + "dompurify": "^2.3.3", + "prosemirror-commands": "^1.1.9", + "prosemirror-history": "^1.1.3", + "prosemirror-inputrules": "^1.1.3", + "prosemirror-keymap": "^1.1.4", + "prosemirror-model": "^1.14.1", + "prosemirror-state": "^1.3.4", + "prosemirror-view": "^1.18.7" + } + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, + "@types/codemirror": { + "version": "5.60.8", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", + "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", + "dev": true, + "requires": { + "@types/tern": "*" + } + }, + "@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/node": { + "version": "16.18.126", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.126.tgz", + "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==", + "dev": true + }, + "@types/tern": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", + "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", + "dev": true, + "requires": {} + }, + "@webpack-cli/info": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", + "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", + "dev": true, + "requires": {} + }, + "@webpack-cli/serve": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", + "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", + "dev": true, + "requires": {} + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true + }, + "adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "async-validator": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", + "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", + "requires": { + "babel-runtime": "6.x" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } + }, + "axios": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + } + } + } + }, + "babel-helper-vue-jsx-merge-props": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" + }, + "babel-loader": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz", + "integrity": "sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==", + "dev": true, + "requires": { + "find-up": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } + } + }, + "babel-plugin-component": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz", + "integrity": "sha512-WUw887kJf2GH80Ng/ZMctKZ511iamHNqPhd9uKo14yzisvV7Wt1EckIrb8oq/uCz3B3PpAW7Xfl7AkTLDYT6ag==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "7.0.0-beta.35" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "browserslist": { + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + } + }, + "call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001726", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz", + "integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==", + "dev": true + }, + "cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "requires": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "requires": { + "readdirp": "^4.0.1" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "requires": { + "is-what": "^3.14.1" + } + }, + "core-js-compat": { + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", + "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", + "dev": true, + "requires": { + "browserslist": "^4.25.0" + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "dev": true, + "peer": true + }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "dependencies": { + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "requires": {} + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "requires": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^7.0.0" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + } + } + }, + "css-minimizer-webpack-plugin": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.2.tgz", + "integrity": "sha512-nBRWZtI77PBZQgcXMNqiIXVshiQOVLGSf2qX/WZfG8IQfMbeHUMXaBWQmiiSTmPJUflQxHjZjzAmuyO7tpL2Jg==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.25", + "cssnano": "^7.0.4", + "jest-worker": "^29.7.0", + "postcss": "^8.4.40", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" + }, + "dependencies": { + "ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "dev": true, + "requires": {} + }, + "cssnano": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.0.7.tgz", + "integrity": "sha512-evKu7yiDIF7oS+EIpwFlMF730ijRyLFaM2o5cTxRGJR9OKHKkc+qP443ZEVR9kZG0syaAJJCPJyfv5pbrxlSng==", + "dev": true, + "requires": { + "cssnano-preset-default": "^7.0.7", + "lilconfig": "^3.1.3" + } + }, + "cssnano-preset-default": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.7.tgz", + "integrity": "sha512-jW6CG/7PNB6MufOrlovs1TvBTEVmhY45yz+bd0h6nw3h6d+1e+/TX+0fflZ+LzvZombbT5f+KC063w9VoHeHow==", + "dev": true, + "requires": { + "browserslist": "^4.24.5", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.1", + "postcss-calc": "^10.1.1", + "postcss-colormin": "^7.0.3", + "postcss-convert-values": "^7.0.5", + "postcss-discard-comments": "^7.0.4", + "postcss-discard-duplicates": "^7.0.2", + "postcss-discard-empty": "^7.0.1", + "postcss-discard-overridden": "^7.0.1", + "postcss-merge-longhand": "^7.0.5", + "postcss-merge-rules": "^7.0.5", + "postcss-minify-font-values": "^7.0.1", + "postcss-minify-gradients": "^7.0.1", + "postcss-minify-params": "^7.0.3", + "postcss-minify-selectors": "^7.0.5", + "postcss-normalize-charset": "^7.0.1", + "postcss-normalize-display-values": "^7.0.1", + "postcss-normalize-positions": "^7.0.1", + "postcss-normalize-repeat-style": "^7.0.1", + "postcss-normalize-string": "^7.0.1", + "postcss-normalize-timing-functions": "^7.0.1", + "postcss-normalize-unicode": "^7.0.3", + "postcss-normalize-url": "^7.0.1", + "postcss-normalize-whitespace": "^7.0.1", + "postcss-ordered-values": "^7.0.2", + "postcss-reduce-initial": "^7.0.3", + "postcss-reduce-transforms": "^7.0.1", + "postcss-svgo": "^7.0.2", + "postcss-unique-selectors": "^7.0.4" + } + }, + "cssnano-utils": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", + "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", + "dev": true, + "requires": {} + }, + "jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "postcss": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", + "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", + "dev": true, + "requires": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "postcss-calc": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", + "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", + "dev": true, + "requires": { + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.3.tgz", + "integrity": "sha512-xZxQcSyIVZbSsl1vjoqZAcMYYdnJsIyG8OvqShuuqf12S88qQboxxEy0ohNCOLwVPXTU+hFHvJPACRL2B5ohTA==", + "dev": true, + "requires": { + "browserslist": "^4.24.5", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.5.tgz", + "integrity": "sha512-0VFhH8nElpIs3uXKnVtotDJJNX0OGYSZmdt4XfSfvOMrFw1jKfpwpZxfC4iN73CTM/MWakDEmsHQXkISYj4BXw==", + "dev": true, + "requires": { + "browserslist": "^4.24.5", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.4.tgz", + "integrity": "sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^7.1.0" + } + }, + "postcss-discard-duplicates": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", + "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", + "dev": true, + "requires": {} + }, + "postcss-discard-empty": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", + "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", + "dev": true, + "requires": {} + }, + "postcss-discard-overridden": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", + "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", + "dev": true, + "requires": {} + }, + "postcss-merge-longhand": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", + "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.5" + } + }, + "postcss-merge-rules": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.5.tgz", + "integrity": "sha512-ZonhuSwEaWA3+xYbOdJoEReKIBs5eDiBVLAGpYZpNFPzXZcEE5VKR7/qBEQvTZpiwjqhhqEQ+ax5O3VShBj9Wg==", + "dev": true, + "requires": { + "browserslist": "^4.24.5", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.1", + "postcss-selector-parser": "^7.1.0" + } + }, + "postcss-minify-font-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", + "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz", + "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==", + "dev": true, + "requires": { + "colord": "^2.9.3", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.3.tgz", + "integrity": "sha512-vUKV2+f5mtjewYieanLX0xemxIp1t0W0H/D11u+kQV/MWdygOO7xPMkbK+r9P6Lhms8MgzKARF/g5OPXhb8tgg==", + "dev": true, + "requires": { + "browserslist": "^4.24.5", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz", + "integrity": "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "postcss-selector-parser": "^7.1.0" + } + }, + "postcss-normalize-charset": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", + "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", + "dev": true, + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", + "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", + "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", + "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", + "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", + "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.3.tgz", + "integrity": "sha512-EcoA29LvG3F+EpOh03iqu+tJY3uYYKzArqKJHxDhUYLa2u58aqGq16K6/AOsXD9yqLN8O6y9mmePKN5cx6krOw==", + "dev": true, + "requires": { + "browserslist": "^4.24.5", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", + "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", + "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", + "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", + "dev": true, + "requires": { + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.3.tgz", + "integrity": "sha512-RFvkZaqiWtGMlVjlUHpaxGqEL27lgt+Q2Ixjf83CRAzqdo+TsDyGPtJUbPx2MuYIJ+sCQc2TrOvRnhcXQfgIVA==", + "dev": true, + "requires": { + "browserslist": "^4.24.5", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", + "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.0.2.tgz", + "integrity": "sha512-5Dzy66JlnRM6pkdOTF8+cGsB1fnERTE8Nc+Eed++fOWo1hdsBptCsbG8UuJkgtZt75bRtMJIrPeZmtfANixdFA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.3.2" + } + }, + "postcss-unique-selectors": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz", + "integrity": "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==", + "dev": true, + "requires": { + "postcss-selector-parser": "^7.1.0" + } + }, + "schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + }, + "stylehacks": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.5.tgz", + "integrity": "sha512-5kNb7V37BNf0Q3w+1pxfa+oiNPS++/b4Jil9e/kPDgrk1zjEd6uR7SZeJiYaLYH6RRSC1XX2/37OTeU/4FvuIA==", + "dev": true, + "requires": { + "browserslist": "^4.24.5", + "postcss-selector-parser": "^7.1.0" + } + } + } + }, + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "requires": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "requires": { + "css-tree": "~2.2.0" + }, + "dependencies": { + "css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "requires": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + } + }, + "mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + } + } + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" + }, + "debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "optional": true + }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0" + } + }, + "dompurify": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.7.tgz", + "integrity": "sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==" + }, + "domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, + "electron-to-chromium": { + "version": "1.5.179", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.179.tgz", + "integrity": "sha512-UWKi/EbBopgfFsc5k61wFpV7WrnnSlSzW/e2XcBmS6qKYTivZlLtoll5/rdqRTxGglGHkmkW0j0pFNJG10EUIQ==", + "dev": true + }, + "element-ui": { + "version": "2.15.14", + "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.14.tgz", + "integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==", + "requires": { + "async-validator": "~1.8.1", + "babel-helper-vue-jsx-merge-props": "^2.0.0", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true + }, + "envinfo": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true + }, + "es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "requires": { + "es-errors": "^1.3.0" + } + }, + "es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "requires": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, + "esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "requires": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==" + }, + "for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "requires": { + "is-callable": "^1.2.7" + } + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + }, + "has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "requires": { + "has-symbols": "^1.0.3" + } + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "i18next": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.2.1.tgz", + "integrity": "sha512-+UoXK5wh+VlE1Zy5p6MjcvctHXAhRwQKCxiJD8noKZzIXmnAX8gdHX5fLPA3MEVxEN4vbZkQFy8N0LyD9tUqPw==", + "requires": { + "@babel/runtime": "^7.27.1" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true + }, + "immutable": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", + "dev": true + }, + "import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true + }, + "is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "requires": { + "hasown": "^2.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "optional": true + }, + "is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, + "is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.16" + } + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "katex": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz", + "integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==", + "requires": { + "commander": "^8.3.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + } + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true + }, + "less": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", + "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "less-loader": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-7.3.0.tgz", + "integrity": "sha512-Mi8915g7NMaLlgi77mgTTQvK022xKRQBIVDSyfl3ErTuBhmZBQab0mjeJjNNqGbdR+qrfTleKXqbGI4uEFavxg==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, + "lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true + }, + "linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==" + }, + "markdown-it": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true + } + } + }, + "markdown-it-checkbox": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/markdown-it-checkbox/-/markdown-it-checkbox-1.1.0.tgz", + "integrity": "sha512-NkZVjnXo5G+cLNdi7DPZxICypBuxFE9F8sx3YGMZn+Cfizr8EZ/1TFUKl7ZnefF6cr1aFHbnQ5iA3rc4cp7EyA==", + "dev": true, + "requires": { + "underscore": "^1.8.2" + } + }, + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, + "mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "optional": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "dev": true, + "requires": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "dependencies": { + "ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "dev": true + }, + "monkey-around": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/monkey-around/-/monkey-around-3.0.0.tgz", + "integrity": "sha512-jL6uY2lEAoaHxZep1cNRkCZjoIWY4g5VYCjriEWmcyHU7w8NU1+JH57xE251UVTohK0lCxMjv0ZV4ByDLIXEpw==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" + }, + "native-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.1.0.tgz", + "integrity": "sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw==", + "dev": true, + "optional": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "optional": true + }, + "node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true + }, + "normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "obsidian": { + "version": "1.8.7", + "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.8.7.tgz", + "integrity": "sha512-h4bWwNFAGRXlMlMAzdEiIM2ppTGlrh7uGOJS6w4gClrsjc+ei/3YAtU2VdFUlCiPuTHpY4aBpFJJW75S1Tl/JA==", + "dev": true, + "requires": { + "@types/codemirror": "5.60.8", + "moment": "2.29.4" + } + }, + "orderedmap": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "optional": true + }, + "prosemirror-commands": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz", + "integrity": "sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==", + "requires": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "prosemirror-history": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.2.tgz", + "integrity": "sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g==", + "requires": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" + } + }, + "prosemirror-inputrules": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz", + "integrity": "sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==", + "requires": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "prosemirror-keymap": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz", + "integrity": "sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==", + "requires": { + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" + } + }, + "prosemirror-model": { + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.4.tgz", + "integrity": "sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ==", + "requires": { + "orderedmap": "^2.0.0" + } + }, + "prosemirror-state": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", + "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", + "requires": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "prosemirror-transform": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz", + "integrity": "sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A==", + "requires": { + "prosemirror-model": "^1.0.0" + } + }, + "prosemirror-view": { + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.1.tgz", + "integrity": "sha512-62qkYgSJIkwIMMCpuGuPzc52DiK1Iod6TWoIMxP4ja6BTD4yO8kCUL64PZ/WhH/dJ9fW0CDO39FhH1EMyhUFEg==", + "requires": { + "prosemirror-model": "^1.16.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "requires": { + "resolve": "^1.20.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dev": true, + "requires": { + "jsesc": "~3.0.2" + }, + "dependencies": { + "jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true + } + } + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "requires": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "rope-sequence": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + } + }, + "sass": { + "version": "1.89.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz", + "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==", + "dev": true, + "requires": { + "@parcel/watcher": "^2.4.1", + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sass-loader": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", + "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", + "dev": true, + "requires": { + "neo-async": "^2.6.2" + } + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true + }, + "serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "simple-mind-map-plugin-themes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-mind-map-plugin-themes/-/simple-mind-map-plugin-themes-1.0.0.tgz", + "integrity": "sha512-v+L28HfRK1B+qw+76ueRGbbAxnKmGhVNuHL+oCWTE0qbdvaqSAszI+yOxqeTNXJmBgzrjeJXpJ831/gDiWUKaQ==", + "requires": { + "esbuild": "^0.17.15" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "requires": { + "frac": "~1.1.2" + } + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "style-mod": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", + "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", + "dev": true, + "peer": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "dependencies": { + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + } + } + }, + "tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "dev": true + }, + "terser": { + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "dependencies": { + "ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } + } + }, + "throttle-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", + "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "optional": true, + "peer": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "requires": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "dependencies": { + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + } + }, + "util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "v-viewer": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/v-viewer/-/v-viewer-1.7.4.tgz", + "integrity": "sha512-K3PQ8utnVXXBCa5IRXRAhk/m83fNIsK77gTSXqAmPJe8eDTaSY1nifAOWPUmQDjzuCxYfa14UjGftHR9MFV70Q==", + "requires": { + "lodash-es": "^4.17.21", + "viewerjs": "^1.11.6" + } + }, + "viewerjs": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.11.6.tgz", + "integrity": "sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw==" + }, + "vue": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz", + "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==", + "requires": { + "@vue/compiler-sfc": "2.7.16", + "csstype": "^3.1.0" + }, + "dependencies": { + "@vue/compiler-sfc": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz", + "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==", + "requires": { + "@babel/parser": "^7.23.5", + "postcss": "^8.4.14", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "^0.6.1" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + } + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-i18n": { + "version": "8.28.2", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.28.2.tgz", + "integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA==" + }, + "vue-loader": { + "version": "15.11.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.11.1.tgz", + "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "vuex": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", + "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==", + "requires": {} + }, + "w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" + }, + "watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webpack": { + "version": "5.99.8", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.8.tgz", + "integrity": "sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + } + } + } + }, + "webpack-cli": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", + "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.6.1", + "@webpack-cli/configtest": "^3.0.1", + "@webpack-cli/info": "^3.0.1", + "@webpack-cli/serve": "^3.0.1", + "colorette": "^2.0.14", + "commander": "^12.1.0", + "cross-spawn": "^7.0.3", + "envinfo": "^7.14.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^6.0.1" + }, + "dependencies": { + "commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + } + }, + "wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" + }, + "word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==" + }, + "xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "requires": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/plugin/package.json b/plugin/package.json new file mode 100644 index 0000000..5a0519d --- /dev/null +++ b/plugin/package.json @@ -0,0 +1,77 @@ +{ + "name": "obsidian-simple-mind-map", + "version": "0.1.0", + "private": true, + "scripts": { + "build": "cross-env NODE_ENV=production webpack --mode production", + "dev": "cross-env NODE_ENV=development webpack --watch --mode development", + "lint": "vue-cli-service lint", + "format": "prettier --write src/* src/*/* src/*/*/* src/*/*/*/*", + "createNodeImageList": "node ./scripts/createNodeImageList.js", + "ai:serve": "node ./scripts/ai.js" + }, + "devDependencies": { + "@babel/core": "^7.28.0", + "@babel/preset-env": "^7.28.0", + "@types/node": "^16.11.6", + "babel-loader": "^10.0.0", + "babel-plugin-component": "^1.1.1", + "buffer": "^6.0.3", + "builtin-modules": "3.3.0", + "css-loader": "^7.1.2", + "css-minimizer-webpack-plugin": "^7.0.2", + "file-loader": "^6.2.0", + "less": "^3.12.2", + "less-loader": "^7.1.0", + "markdown-it": "^13.0.1", + "markdown-it-checkbox": "^1.1.0", + "mini-css-extract-plugin": "^2.9.2", + "obsidian": "latest", + "sass": "^1.89.2", + "sass-loader": "^16.0.5", + "stream-browserify": "^3.0.0", + "string_decoder": "^1.3.0", + "terser-webpack-plugin": "^5.3.14", + "url-loader": "^4.1.1", + "util": "^0.12.5", + "vue-loader": "^15.9.8", + "webpack": "^5.98.0", + "webpack-cli": "^6.0.1" + }, + "dependencies": { + "@toast-ui/editor": "^3.1.5", + "axios": "^1.7.9", + "dayjs": "^1.11.13", + "element-ui": "^2.15.1", + "i18next": "^25.2.1", + "katex": "^0.16.9", + "lz-string": "^1.5.0", + "monkey-around": "^3.0.0", + "simple-mind-map-plugin-themes": "^1.0.0", + "v-viewer": "^1.6.4", + "vue": "^2.6.14", + "vue-i18n": "^8.27.2", + "vue-template-compiler": "^2.6.14", + "vuex": "^3.6.2", + "xlsx": "^0.18.5" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "babel-eslint" + }, + "rules": {} + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead" + ] +} diff --git a/plugin/shims-vue.d.ts b/plugin/shims-vue.d.ts new file mode 100644 index 0000000..efa1613 --- /dev/null +++ b/plugin/shims-vue.d.ts @@ -0,0 +1,5 @@ +declare module '*.vue' { + import Vue from 'vue'; + export default Vue; + } + \ No newline at end of file diff --git a/plugin/src/.DS_Store b/plugin/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..835585a2f27a5cc4072bd8cc8c6728d8f99f3888 GIT binary patch literal 10244 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 P3X9tUB8+U>=w=Y1k7 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 literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/foramt/11.png b/plugin/src/assets/img/foramt/11.png new file mode 100644 index 0000000000000000000000000000000000000000..087452e4ac9b3be8d126cbf8f57ff5d640ceea94 GIT binary patch literal 1817 zcmaJ?c~BEq91h`fA`l`YMGLxw)&og42LX~8j${)^YfvGBpi~LT5&|Y0lf@iVTScsj zR0hz>QE&0YgQ8Nk9-XQv$}w6HK|m>jh=72gQA;-{+CNHnX7~NxoA3L6=bPQUC^Foc zFr9$I;he=0P!zUOvDbf+1NMD6M7V`5(@y;LQ7s1q4F&_%z@#ENB}iwp*&vMpG8hyLLD8EusLV*w=zYc& zAXqQgskEpH(EwIOSt62#^2k`U@6%9gKgw$KA4-K44K&KMAe~CHrZo!lNfBh_cqJDlBPgOzMzjEfMP&kW zBr>^5V?CKWMv+K3VvQb^Y2>gN;*l{Cs!FBc2w6flOCW+6d_Ij%7t#2lpr9~5J3z!@ zFrk1z);JeJqLYcbCdtW&Lq6(Sv?2F9}Hs3wkuKcU_Su43X? z1QT*WEEv$*+kf?X{0JK$tNC$yvCYT%hc(#H>#*sz!Pn8TOS4f7g-MMMdJ5wrq>DXn zjE>yiK`7WBTd#PTu#`yISu*76e&B#ml;tY?{L8zuNId&GQ5`wg{YgGaM5I8I<08uM z6G$;J(s`Lx?`ax!p~7~6sys5I zuxbAmXkkqMCT`WS*&a(geKU)?_t@VhojaCL1trcgmn~)1Hhaud&RRJfvHtp2rkj*| zJ;k}0=~mG!y0ea%gwHOV*-Y$p9LboMYHl3u-WO6FmCanJz6r zC3sAA*x-V9GS{Ys=iA@-t1{%fLp645AlYA)fxAEQlsuXSX2o>cW%mZNss`}i{2-qfys*GZX8 z=QnDap1#60FYkP)tV+x|$mE15&^a5{mtM(90Fg7*j%|UvZVk2{aU1-p?RF#1&e4Rt zDd(HCmJ)ZPEU)vT!Pzdlso%Tk30{!VafZ9%@qW{{BhyT4ZEd}8XSFx^)%5sORl8@@ z`@eQ5j$y}2dn@%x896<1)S7dTCMOS1Z9P#u)F#}K)zRYRbLYxdF@tm9N=fsjxPc=b zbNYKq@!V;o%1Zp1HQn4&K2!JoWP_RbZkO{g{3i74=WD>SE}Id|{Pe5671_C?@z>t>a+2oWum0g)inn12Gg9t)8eg^flCKG;sW%3?1XSRR*?({NEQBq(3TcS|2APVP>q_}iF$DClZSko&%-TF{nOI~46fin{4Y iu2C)g%5Z80-U;XP&@brcteu;zKP#~?5<0<8SpN@gC)-Z| literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/foramt/2.png b/plugin/src/assets/img/foramt/2.png new file mode 100644 index 0000000000000000000000000000000000000000..a25a4bf1ec57626bbd6d3ee378685da4be6f2eeb GIT binary patch literal 1842 zcmaJ?X;c$e6dr-HtB8u?#*iQwmP{6skdX)`Aps;511exeLNdVsnF-0z1VzD=s?aJ_ zs|d24;t{P11&aklJt$BWx2k9bm$-3MTyO=8)=p5gKT7AEnRnkk_xtX>?|$!0UR0!b zto<~50072@g$kv_N+n)@TWjL`>ZScDVsXVoV)1B9iR)!r1emYDk`ORVElWnEh)j{0 zei8`;085H0CKivCM8I-PO_iBrs0Ou$Km$NvkU=Apry@9*ge0p_9_i_!qa;wJ;E|TF zBs7UefUHo3uGAvYD2TIn8ktV{@}-l zL}b(|l(1AN`k0T{@klFhTmwUpUazO>nN&=h4AHq-|q+T}-A1fux8I%h1Y+;VH@HR2o>IMPxXpjlr;Ri#qELLrmRVsV6YHjPWCi)aBtroSkJBM|Td zxaM@TXYrTrwzwtB%3)i(4T3KCT08fopU|`{-(Y8FPV=+6=sbrhR?8X}7NMcd z!Om5ljsEVUsy%@bwuMuT{G~7+SiQ*pg7Gn)==mV5B;sk=*{s7aD&Cj(B=lBikJ)C^ z=T<9?Tm^Y6*OhEH87Td0SZN|!H&|OY6j0SUy}sFPeZ#>5pXT>QW?;3n;1w?_;z*-~ zlXAYabsaZ#>GJcp9^8)Gnr&BF$*RC!C!aaO8|S>Kz4Wiv;Px`l@`b)ak&C!l{P6sw zxC2i&ZT2RS=MCIRZ9oT)*_fJq3k9_N_BSQfbK}B=SA(NLANqm(;sLZU&WYJ+B`(ui zdMRB7E5lJ!+i7D2+49IOyOJzr;)C0dfD@_0{oew+ZUTcVL-o!!`UJ~4@XS@qFY#~W z_YZhbx3{FHHJ#r4;6`N%0`Nbpga$F4MWwr--a{sl7 zz^?1>^);DLcS@i2+AWUZbqRD%TT_Xr_u8H1<9dxLdrz3|c5btdSCI`fQ!drjAH6># zhaF}cZkpt=Wk#basJnPgTx-|VcZ^9tTL7z8r9AJxeJr(MgH;X9eXu;crKEeDs9-^@ zhzH-x?KtQ2A_U;L<%cU44NnQ6-uOq@Zo7p)UalPr{0sra= z*R+O>56`*me|urFzikZF*80j7(*`eq{9vknXH!RO%helxPNg%*zs*YzIw=n2d)oWN zqcux`#&oylJohzjW2Sqz`Q&xN&u%nPjJ2$c>8Y1%#kskszIVA=Od5PU(6+ie$%(gb zETx89op9UdkF@n)Y(DEwH6-$LANF5dmeYh8z>dvZ3lerbsiS;%@AP=SYrkV7pb;Gg zgHnz|+m_7D(%$LqYOnH5)@I(bKI__N{bymL9 literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/foramt/3.png b/plugin/src/assets/img/foramt/3.png new file mode 100644 index 0000000000000000000000000000000000000000..4781185df69994b2d5a05ddbf3617b2b471d3a55 GIT binary patch literal 2428 zcmaJ@c{r4N8y+*3K9NGshnD%K%Mxey8Dl0whLEw#Rx)N@W|+;)V2C1hB0^M3=#bE% zRQ4iMDob>zBt@wq$u5yBeWTL({;2Q0uJ`>tzvp`H``PY4-UKIyoyv+@iXae3+17^a zB0Uk(7q?1Y`u#Yq*djeNg;t(IS8jkXoXQ747IdyZ0JUXP0|6I+N{224O8$X2GC zr_hsPPoilk z6Uhf$BOTmmk-;<~9cH#2Y9b;@3D|&;3Kg+g905sW3j4}SlG@8|BnO!e`&N`E z#R+Q3VsL1C~+lo1kxhhwlLJb{G9LBBsRX+}Oh zfaF59{+>^IGlemPLLLc;3=a=Sgkuq0ejpM}BodJ*3=)HZOC#Wd2#$~{f^!60Rv5^D zfW~L?giJ06y39!R=Y|SRVbW^9wZZ27pydd@k4ic;q=?Exq7kU&wpIcul>Z;fX8(v5 z2wi}G>isFPz%7CYAYA|fHFBi_L*b$9ipfUp+`bw;jAhXzYK*2$iIX7^@qI`vH68N^a7^cf$B)VIyJKd$K$Xd@@JsK9?D0n-9xf!#R+WV06 z##T4{?ZfQs@tpbWu3l&F((1MP$r||iVcm+7$ulldGpd-IJ@Ik>Ql(i1ejz_Q8pzz% z*e^1CoL+krJZ^ZPkCUQ$lam76OO^);3M{N-6Y|79CyU+f;S;S16+s?Xz=7?%2tHMt zO=3IZ{c488Mtn^=_OdD%h`nX`L#Ixx$sA}**Z12!QS+W>&=6*%|9G9w4$nYTKt*M< z%i9jW1dYC=Q|Mylu#2mlb(6ewGBVb)#hPV#Cl1eBjb@u)*jV&jIV;zC3*>OR4V`tE2t3t9h-mek*oUPp3_0eu$+4IPOu5nYV56 z&R9vCc~D-*!OKyzh7*qp2`WAB&Ae()_>Q1BEG{@l$8Rn!#vT7CBV3`qv??Y_vU+Hq zr@{L}mk_w|dibSe#`WV0rv?wwZE35|kz@U1$zq7pTOC-~;NYjfKv+sJWC zotjo^{5`3H9OJlvu@qm}-+%W)!_wwktO0LP5^%qo1ql{Ooai@&r-z z%HQ#E2GLlNxDVHGK~~YR9mz^f{OgE+l&t0jc#>A27w%;{=D}jz-OlbPH$U%_{Y}KG zO3=7iEiiKuOX}L+LY$TRe8AMVIuFIaK4P}R?z#GofJd^=uX1LCH?g`8GM< z2zy7wY$zQx1*~z6v{%`gUM@W*;A2y#3o3ex8%+%CqCND0FU7HOuy&TrNRpV|FJjBfENir-|WDhgIiJsXs- zP$1*DMX}XDBe{ODhLw3efBMAU5{Hb5NS``;dJ|imNQZ<3KnCFwYl8>xN5#lMC9}5N z^B$J2Nee*d8ZF7%(fOLC^Ti8yGPt)|X7%is{O*j6NxIGbYtvwuD>AiV%-`edzxBJdKrowxhZtRW6hLl%42Z*~;ry0;dSva19;M5> z;jNQy&hBFg8tqA;_Q{1V8&gXb_u%&UsKLdWhP0=U_9qG^0zTGBd+5)(GL`$0c>dJv z=0x4$X2eiI)yjsw^u8(UxBlA=v oaps9^mY*fv0c#2#{{k0-&NZk!ijD5UEdLMLS~-xf?C?AEU+{YiY5)KL literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/foramt/4.png b/plugin/src/assets/img/foramt/4.png new file mode 100644 index 0000000000000000000000000000000000000000..86e7f914d90fe7146b964bad68671f6cbf81feaf GIT binary patch literal 2162 zcmaJ@X;f3!77p_~6_Ceh2pxn%CP+d80U-%PpAiU=K}8J7O^6|bNgx4UWK={!#3F(q zRHQh7LPdsx1=@;QK(s1-2?BzYN7Ygg!H6REV#U56k9XI)_w2LR{=U8U+22{~=7(<$ zHZim_gg_uBp&?`%xWd8LOJ5iKE-o1Mfs3t_5+jWivZXSH7=Q$@gb4sNl+WM*G=RZM z-TM>Z3xR04a_KSB80r=RQ^0*OVSF&=170tQDw zc|qSlFfgN-#U{|mLGSZ{J0dJmDiskB2$@U;0d^5_+l#K+ph*Fj>q5hsSnVO(i0b!~jDo6w`&mq_vX_PZUap zl0=~hipIb_p_`}-CRecPaeW7&QVF2~iIgE=0-+0E!G@x~Ma#uX=K~VPf;t3sGJQ_uDi0qS*aUoo_1sGjMSDi4F8%NZy6R zw$0ZZEK-7VH;oqzS^L&n-k5hTL$VFt5M67sJlTa`emst|`vx*Y?a6A)+|``nfY~(e zWb35aHwJwv@Xw03gV>q99wbvVo^Q}d)4D^~GhTQ-$QjV8+cNp4`P61k=c^~pY%Ndr z(hP=U$s6;(zsN%Uh{RGl^->CB@G!*Cb%%Cx1qm zg+&!!?TXWQJo9LHAw*!oMV;y*6BXsvS)*4r)N)d}Wv?htk587xEIOJLujIR5u&6s- z>AQQ+NB&*%fbzqIdId(I_bN)3#w56|H0jQs5z579(M}PsEE6(+r3>7c!2Ea1`OAtZ z+owsoV~B_&vfs^M-j;P#-PYQqLr{bA!{dw0}UI%Iz_-cwi->-WOpXqkiV z-sPyNt}VMs=Y3Evk?sn+_W4GL-EBolTT6F%&rtZTYL|oOy&bO-lOD~CqOvpF9H(Yr zYM(kIVs_@nH#u#p{#4!{R@#-;y&l2x>Y-)@JD{h0d9I~1u;$R%gq8kCWMTgzC`@Aw&)!d-t=Kodpgt#n6T|GTBqLe_S4^%lG_M1O6uub#lX?49<^q~29KV^d5P@uBD5p4MHV)a7Rt54Go{{;3w~W~Mj=pDi`offT zrA;nud;W&$6FaI@w3{(;|Loesi>$^+Mhl038?NlxH{GUcan2gDKVWW?aR6V#<5`yH esTVRdjUnn6r%$D)|Abxr3kaobC0`2Mo&6_Q6NDT9 literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/foramt/5.png b/plugin/src/assets/img/foramt/5.png new file mode 100644 index 0000000000000000000000000000000000000000..8f8dff787691c632cc5ed0185005fc3b5745a040 GIT binary patch literal 1910 zcmaJ?c~BE)6i-zUfhHITn&8yPGB}2`E^ssAwxt z>!5;MT5lK?i=u#1QPhkIc%XKycp@Mw7VrY?Mn(Ha>CWta?|bupzxUqve&1}iGeTPg z!F&>FWS}-qj>{!6JQape6}A|v1u+n45{W;qm528!gJGN<5X!n6;}<;m=5qQJc0m$aRp#O^r(qv5rFS`d4z3qLm==z1lI|` z4@Jo(QXmpD!T^^_4^h!*bbw7*p)3Z6%Vo3K(*OpI!Gvfmh!GaTVDiG)JbEbb@d1g9 zMs*TTCXD)+kJt%74UQXl5M(x+sb(e>GbTfHE|&|@7!ZRILPUg^Qc+xC2|-OhLkvRL zq%vv^xE4bJ8>2#rEyV>OQSFB|5W^>0)b#PFh(m)c3Ijx^(rj%F1xh6UABrHKqD{CA z{#@^W5}V>u4KO5wP1sVSiWpv!k1dsf7iokQIA)B)F#XU;N;MdcnKYOIV1!YbK!8M{ z(xNs`;CqNf!V{q;T!E@!kx&2MhpSocg@odTMKvAuzVk}>S1f) zMh%OFh+-hyZ2vXuAr~PaoB2t-#O9O!VU!TPkx;ijyPmjaBkzfX;c=FmkGG1Wr-ZvV zp3p0=G?>GbsyM!H**VdC38IBu5Vt@rw3y#<+G|w(=#}$(GRwS#%V#ZbD~$`Tn*Qhd z@+Lnd907tXqB+Qn5M(W54^KJ8ECK1xnHmaOUdu)Iy+*+>piUx zG6tX3^>35~F23A#-OuUZ+a=l7q{u_S#Q|y1B2hkkb@dtYPS38%?QK=J{lhB<2hVS4 zZgtsrfvk2pbFxJKR^KO5G>`NvKo0!q^XN(EcipQx#iMfNsoIvoyRTn!?5&s9daL3~ zrFm05I&QJ&an_LsmRxV`dd_QXY?wKIY2D;aKvL3bX>Vuc>)B)Goh)ZfX)qlH{UCmg zYT1fn#|gijRv*hMe}wBxHjiVb;L1`DHjp$XAjqT8epkKrS%I5%5uBI^tQCU(w^ORR z_g?K3zY+PmBr>uK=&Kb6Dl11WSg>GJ@ul`i91oS3$JhKEzb~t{wzey?v9U4IY(8Q= z*3qHWXf%fBOeV9mqT(W4yk}3KMz8m^*xA|T78K~9BUM#@ynOkxFXBOOZ*R-7!a~nz ziR3Gbx3_nGgwK`>4}%5k*Z5cHPFuucCz|`1W!2^7&NYMH)U<#x>6D9i3?(~v+Mmd` zJ^&`JKS$>Z@?!i>`A=9kuZ6m1&TlRgCr#QmP*w&$d-1~jd@O}>_6wBeUQ%6sV|$gW zt83Hc%aN34J9hXsb>K86^Img(h;*z+8gh?5a=xAW{%U3N~Db@Y` zDftMC#Y$AGSJhOXzkc0akD|O+FbuEw`hI-ytCM*_!NHCXN=vQiK z1Ds32O*^`~yZeqp>sFLX9q9Ci*}S~Gym4-BSxeHlUMt(-kQFm`?#6^c5Cjt~7WYGy zm5v!Akz-73?1-Gkztg7|6&H`STCI!wzMVgRWnJC$ZI zgtmp$d?|%ONx4x`Q{#C_H%BZMcopOo6`>|GE*6On=I7+(gl})Q{BHF1^ShY?r`390 zYi(UrQ{MA9 zx8=*59CEs>CmpTm-#%y4{$}jZ1%Ll{cC4RHW%_39pDYnhxE#Ru?0V-wBMr1Kr$2PX R-E4nC(X3cuMMUDte*l{F`SSn( literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/foramt/6.png b/plugin/src/assets/img/foramt/6.png new file mode 100644 index 0000000000000000000000000000000000000000..4942726f5cac184ab46073ac19f841de2b70bbc7 GIT binary patch literal 2023 zcmaJ?dr%Yi77j*0LF7tlxj>C;5Wy;WK?sQ?KoWu!0?MmFu(BizL`XI!iv%baq?V@@ zsvw}of}o=nsFs&DD$C^|#zF`X2}O&gO#F2x}gL?Kcr4rqjfB2kKf zN(ZUJW{rUhDTH#d3=zXpK*tD1!tn?bkE(rLhD7$3R;qZ@Dzs@tB`7132_#)vYk_?J z{|}W&-bO2s0O(J>?<7_PCCVUT0HlE9=AM`H6_ zTs+uxXC9T}$aSVs*RWhz7%zdO$QoAkCzkuSSlvcQWN2nCBo`lpL_9ex0amMKh~J^b zlj=#Qa(FzHkMwRWud$+cXj#Q_NuYWk-E99d>opg;Ksxj7_M(@!`wvOcrI(}I z?Sk}&U@+^0yty7h%E75~VR7cc|7=~E=$PuN&#{V;H0-x2N*|GMzGxBXSvb4a;#*2R z4>w!rdk4OEY2(J?2>kqU!(AS@ti_0O;@#4WvkQ8+bFvNaJJk;Y$mw^vKBeYm$tCnw zMaw|YbeFF>cdB@K0X#DT(;8oNt*ARnIMP#gq{qL_%F-^II6C^XElnB?xqt>n$pKX+F zyk0e#eHCqo_sb$;u1cRTR=tlBYuDA6G=9rpAkesiXxm+*9lVw`*N=W=S(DVZf_mE28=^dxfrlc6;cY0M~-tXM-g?`_G>(v?c zah3xUUvFP{pzTO+KUXdLxN!*MM3l#RIs-?%4>**!*`B~5HZZ@!YK~9bUon01%{iI1 z(=%~n;G9R}(EW*y+r9@5^o%i71%{^r7MdUBH6O~-;*JJ#aM-fSiXCiD+2_^T4=Q)o z&^5jAFfaXhd8nyFUdo2PY`MKA^+rZZywis)z_dPk7KT3CI_dV~K^E~IA z_dM_H&UkICuQ$`1!C?5R)oihZ|*pATA)HErF0HhGCIN^cui}czh5Ng1qP`9$ykI zl5hpU^M^%e#Eq#Eol^BYAH9>YOeATQfM8~3CMT26!SFPY3&Su7@jxCgijIgPvMi*Y zin0)4;|xlKFyLk@X~ryon^B*FWsou!UG1N3pw<_(7UKC)(T4_7dMn7~K<>8212vj| z4@J=z(FCbO{;KyMiHW2vD+1~e0?WV+^zc%{+^MV*1&-)R3{S$a&EqE-Z^B57Fkx1J z7tP@VY>nPvwzxeJ&mbC&L~S8Ry~Tj2l`}dggX&$PTOOmK-_xD{V zrX>WQ%RO0=UbGx+`Gk$AR=i!$u5!eIEgR3iH#o1t^H z^~M(sojvP2hlVe{lK;)7INK~Aev06p>?@+KD!*{J9YKP6za2=FQsUs1tLLDxCC+wx zQCyzK)Sdg;^`=%^U2y;sy)2&vY!7oCiX0KisS`i!$SdaOTpN=u60P9+_=iX54AwjM zUU4Lp@9w$tYQW>NpGO|v=?-Zh1N>!mi~In-)3n8jgw0TK`p&=G=K9Sqq!{4O<2#2( ziQ68#+GeF~D^m8FC~ESWo-%9Q_Z~OF#amv(rOjDWzVsAtITDzC$~BhjnIBqHT6L*w zX!n~y&nID7)Y{|Lxp3F!Twg`-x_^q(So9(x6^rj9Y58?=Qw{3%{rByn9&{D$F80>J1uT{Q|m%#59oQWu;G&H z_J7(gl)qdO^||_`#?i<`inqA)*k45QtG<$CVJb%*|3b+bMG?CF)$>h7Jg9j--?|l3I>Lb$!7)^ zZ@9P;x*K1j{xy@99aqIF`W})?d#dI?z7eTC86PaceQvXv#v`*R z@2%2xNNvOL8zRu9}D15ZfStdJuX?x|iqxyLEt4H@P zSD)x_H+bbQy_#@KvXOiel$Y}-l);o^7i z&S6%meqVKHY6-#fQ3O6nc(P;O=yrn$D_mW_{EXOd7iPZWQKgGG)uB4j9wxHd*LP`u zYHzK-;Ja1Z?m9{K|JXPzh{;F%uLnn3COI?}WLiT1X+Hi^>`LSOYTb&2HTF(0!*t`} zj!Ij|{<`}&k9}WTDSjGm*;K@YcmcBq%DTTW-14|N<#2CV8v*uwPQoXprm7av6} vXsf+&Fu7a@o1nYbpqWqwSDG@M>jg31*k922b*1)*`{$^R(JHH#ZnXUY*?I=# literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/foramt/8.png b/plugin/src/assets/img/foramt/8.png new file mode 100644 index 0000000000000000000000000000000000000000..8de0a046dec5e11653f8b7902480b2071678d5b0 GIT binary patch literal 1946 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 X&J1R{<)j;L^4jL-3H~RY2tV+Dx8MMz literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/structures/fishbone.jpg b/plugin/src/assets/img/structures/fishbone.jpg new file mode 100644 index 0000000000000000000000000000000000000000..68515ad27215a41dcd14ff779d2286161713899c GIT binary patch literal 6647 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 literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/structures/fishbone2.jpg b/plugin/src/assets/img/structures/fishbone2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c08f727c7562d86332033cfd02befc491645b349 GIT binary patch literal 9948 zcmdUUWmuG3*YFV1T_O$AN(>#+-Q5C`QbP=bbc>`QCCGpvH84mwLy0tq#Lz9>qSE!E z$8(f87^+lbmSNl7w1@)7d^ zxr6K=Rt!EM7gtX)9|@*k%*Af;pUpf>48MjzoF$lKeoAF9*3f2fV7iqEwzU`2l~?>N@AgZA z>G#CEy}h};`MKS|PkDf%qM|&!d^~)7T(={*JbhguRz6&=p7;OcAaCbs19o(WIJ&tq z{N!k5?dAoMV7k@zk7M>-BE~H8lS3LqVXQi|~uBCq&ooU;6$nV^4iwcRL(a}~+Kwdi5m6MD6%gg;<>Qs( z7mx$~Nh|MW;{~#Fh5Sit`!8C#f293s5g_+l$?|q!$7go7ieNVo!>?J3IsUUQqW{S6 zH?8eI>mu`yv^=-U@ci7{f7|Onn{Ey0C;FH5-hTXL|8}moMi0KV?wfr8!7rNy*tXxE zB9xn1z;gh~e-Eht0<^#2H#sT_%5CrM^H;}zi`=vWh_L`^fEzRvVgM>J3K}uWO(&rJ z_Nb%%{Gt5i1~9R((eGfOqT$?%1l$Tk`>O{4z`(kLiGqfTj!krn|55`R4-*6P=PXgt zZm9s6Si~fZq-1H7Kqm6>yD(!1Y#E*V6m=8pMj}2%_pJD2g}v)J_?f#Sm7_cob*=SS z*l(5j$q@|=69?lDQ7EXyKY1|%Wk__aFg=(^-|@*+lX(e+R?1p~!;zeC9;p@z=tc4#KLoUb`Jld~3Ek6x#w zRd;Z5!5Ez<4c4@H_wNn+ua_fb*@^Gq4!38(07S&w07&!|bWUWKt#CUM9DgAnDq1k`nd`^%z<6V@? zlwa`RvH4zQaRZMZj#QbU?fSh$Yaj1iZ@hjC!X{dGoCgJ`Qt#>}iYEQ_o_#bvp6Hv_ z@1H;K163{ZfM~PUIv5KgmnL35I9B#K9vP8O#MpdAvW>3($PWTQ)%@=!gZXWK*?arx z2B~vU;1lBb&86!X$fi7NkOm9B4HCg-I`%Mad%mtVpat0&?x9@Q$2!*%#d_Ui5|{2Hud*@~P4kGC zOmYd*&g}BHc1h+9UHlPwap*vQS`BD6{=;Z>7TkhI=?}Vcg1-!+9zG%RW(&4&mAwIk z&OZHy6AbW(J$7E1Jf$seW60sf?)hcsGILp18E3fHn4s)lj!Tqop6T)g%cW<9mti68 zY&8EN8U@egTHX<#?@f>0ZhxuC2o_EN!SW3NHicC0LL--d0Avofa(@*P*{V?)`-M)D zF+^YVbIq6@YNTptsW(L@dvH~%oe{{goSS}n_to1(HwGPH#PDG3EsNL6HG6qYUJk`u zGeLH}O|SD27ZYY-9ohHemX*Ur@g9$5W6(-scZOwuqA%2pf^=#Fy@$_4paUTX$zMu(J8HYCcgr$R%+SFJk|^a_&3@S~W-J&{7atS*o%IVn*#GzPcY zUtoULKpJzAwHOPW5E4T80_EgF^RRpiH?PHIxK*m1Zmik)Tz2!oOn@ihD`w3B)%B|; z@rh5kE0-vH;@xfe-0?@%vZpryK=EAcOvaA43pe`?mmH+j1@TCUmp+aSFK$iPhOr%|f$ycSQSTiRi1XG7cTObw?Q(yYba5-O?MHRaN0j+T=jWB=V zpabA9Hff4$w)F=`MFDVz=3c##Hh?X`aY68k5#n8%aku9bZN~d$u(CPr zj(x=8HQ+dF#d7qnlHc^ZfZz}bn9t;oh>?Xl2TS@TA}Kas@f?~>e1v8B-n_qO)!flu zQ-aC+k-cGIYP^;gE2!6v1mo`|JT8-0h(6~>v5CCGk_AL1ScEW`Xpowx7CGVz>t?w= zT;Dz~u`seXrIc2mFeJ$%zQ;5tFBTF*FiX=)?+-|I$J%iKm3kLC?Q@HBkKZ#0lkP}T zlhp32;71i5I65T>D z-pE47Z>Yk14PS*#q%w!IuJg1q4jpOnz92-6!m=M24rEzqx=KxTqZ4UJGSKTyt~dCS zlTxOeskfW=7%F&OyX`tM;@a%H_*zljoW@1zi_WR2Ftyj_WT4)9BDle;@c??FqPY7h zoX{jHCADIjQt_I-{Ph#MA&v!&kRldGoqA-!!7k=^zeL;e+ z$AKExaj&T7+=8|sk-i|~G|lYrAnUR7GQrdt)m^g%DAZlm5(zF7C)`}R;2Qf_C7?CS zy|M29D4p0U#L}{w^a3{D)_mP}3C(%>*?i}8!0_VpgPnB?je=7>^@}#@?I(^ny}8Te zW(_KW!{+?CO}Iqx+$zo#C(4k-f*Y8os^gjupNBo@;g(*f@@T9JnaPm0_T}`Y%Nm4=VTF-#>W;(=)zGb=RauB z=9ci#_;6EG^39{X7Cr4&hIYEa$Ij;x4hQ;3o+w_->bq3e38v!X zg1BGs(3;COvlz8g-Nbdr{NUw6gYutPotwVpVRIroXwg5d-nXU}mzKwz=lFQ*C2&r9 zuNB4`mX$8;D-unhWF0-RdAj#g02vKh(JE_I4%$pG5Dl{b)o0ph0>!QLoI7H0=A^8t z)01xpAMa9;G$w*ofpL1^6lksrH&^|K`|zs^kqNuRMD~tOrZoABmm7qS>qH|Zlf>49w*_-yZwG%FmcmTus0^AsMvqdGaC-8Ux1!# zMAUQ18BH$Zo?ocy#O9Yyebren@bJnezuQ5BSThnnDQ@&T>f7>TE_f=h0b?;9I)Uy` zyXA|Ba`SJ@(nZ>-HpLVUT+(Ee4D=^bVj1>gdZv+7myiH+K{0e}?s_7mDUt{F>Q~B> zQfF6hvY?pi(KDxpm;U<~(d8nA8yERnPd0A=6DRg`%&9Jl8=cvacIAPvHP#dFNo#9QZtiiBrBCzj4wB{fwVtu`do#yn z;G`}BV<|T_5e-I<0vKF7wV1T^F_6S9muF@05Qjyot9u@&7cnT1^I|JAzJ0bgw7cSj zd|alIpJV`P#b$1(TSQOe@Aiyn5Kp6e*-$v^8qLyGx5%6(WR-c@wc;_aKWmma!pwzp z7Ev;;3rsMbBsP=vce>cYp3~vCP+{*Cbnj|C6PFV zVOXqQY34Sm%sL88(MSUW0v0C6LfNSF4h8@U(jD(~BC2$tWr6yOISbivhJ~pjp=_6k zde>9GW&vZY2N1H3otm~!3t3^xF6J=+4; z@>r`msF3!g2EvKA5T3AG9=ddB1-rEss_dLP^TwSie7e z8UJL=2gIujl<_wmKn? zjQ2rKi&vjE4Uxw87GxZ}ac~8Haz<&-#2A zj31=<^0Xgm{QKgLA?UdcMUc$_sb!x*A9#+C#hioSFc{?+t{%$*)4VfF?yLza`KhSE zs6C?vGmd~vG6au}vz?`H5oUTET6e(j1NRqmwcZH6jROgTF2?W2G-LNhLKU_8QgN|tqco-*CY8Q>)b34v9Vv7 zD7jKILxa9R^eKd&keVC4t{{s+lFOEUqyx!KI^W)B-sMppUaH259AhP7Yyn=@Xui9^ zMsCxndl4|%V5Q5;6NbCh@D(2Sv1mN)ZhazN|B(;G0@Me=?i*DpC_O@t$U9>fD1)U~ z_YI4v>lx@ry}1~exsT)}RM=}dlH0gjL_a!+^1q>|@XGnu14_*Fu6vbTnom@uNA4%w z$#Hzu#HT9L;wZ{QStnkbQpGm{iiNyJB^T&l9My3N2@M#_B1>uKLfd}^jJ5uzsTF-W z75_5cY5B+V@IA6v#fQc<^82*SK6_m)0#vn5VfJD%G+m5XI>bZ(;&u`3N7o^>^1zDm z)3!kbGkS)ig%B81l`lOiQ65f9`mkG7a&ld&k|L&A6Z?uS*wL<*eI z0=p*Kd|?gHBAQM$7eDcOf%y*zQsf$@8_8n#OW2R9xTMFTA|GlwxLddLVp9cS@TTK; z@Ah8Toc2BL%kD@W|KZ_S-;JhuuHLjxA%Fq2lM-jzc@{>qZeRcCI#3TI|^$|lD zsheyBB?|hC*74tHXIQU0D2%vMMf>TtrU4g?auQmD1D_WCQofVM?X8M?SWxU0P=kC` zIkaY32lBQSSh-mT+h07;eZE_g6vPh&X9QQXF7L(&Iy1-*|B<3X$;yo1plwqI6$p~C zMp+=QkfircsRg>uUYaubhQC;PTGGw;2rn!FmE+97rRvGD;Ki`$1i6bHlg(%DcFRcb8gsS`{kh2(;)y-M9QXHR)_##z{{Iha@9iH@`yXvY;n zmyMLi3ruU?8t&;@)a`wuMw;X5IW&HJm^%tKJ@gmp|BRD2_oM>&qoP=aMxR(LCN=3n zna3q(BtZyuIml0Rn;`WKtsJ!!y;f^ehi7K-GJ7{YfyZH7{+IJYCy5W+Wj)AByYR$_ zV6lNM5m{h)OmbR)B%Ml<=_NT)4R{W4#@N>A3cL1S^B z(acPSwYe3F*|^6=h)jdKUgVCZH1CfILPL0QcaE)tAs6*0+0#MeD$$#*xmbUls6ed%9!0oq(<8o zE1Dp$9=o30TnWM%snO%ZEMvSy8De~8Qq75Y5o$b5R^JM>sOc^|D}vV0RJo(tT6QTj z%h436$hWE}?qi`c80ZPhko+JAuj3Ib>WFLmRfJ#M_g(#a0 zlKUucA!F2${>Y}1FX|O)-)|kvXXG!N_Rn{wc{TbLo{DjA*0OxaP1)CI%c}Eo&M*X@&;m=EFKB_AhJx&O({laeqo8 z)ux$I?!3bb4YoiPzB3eiOgr|}xUSe)oYvrUu3A~`20&f=?RCOPpxGW2yq_j)*5I9W zHv&&u#kReKt$q_KH%$#BQ4d&UiC4c|Klp1ayS zj*ZJ>FRi;P&N}bMD^WIHi&&Xq@Rt@j-3YSKc=s)o1|MWW;^OQSE;U})AZJ~ zD04|JQ4q7At7*!ja?5Y8#Lsml6DXLUbO3n?{oJLN+Spo=%CtBb;BR2L(3 zdLnw8guFYs+j+fp;&vca70kMM@B5_RHQ#va_x|&Yz=X=K^-Gk=72ih3A63Q~^Ps_Kx-j@KwpctvGLZs>My9G~MyQPmF{!|2u zsGhuTEw_E*Q~tB_2qk|<1!#w9ifG)OWjm}P6m5hyeloCGrW?_Cpr;|vcl1#eCaLvf+jXcK0R8}`+E@D4` zR-fUXC#S)NIBCE(^?id2gP6IovJs1FQ;sfhir<68lD)J#o^V@n-`!o>#lowMBd(3v zlGRT_4f^A9ChFdt88H7mVS6v{W99OwAUw=Y zelx$t+#7)2bb{ne=_U0@Lv!CLdNIIgcfxl|X^0s>E^+z{;L zGg8XHgX#VX8xERfVUKU>vr^VujQc7B!cmDIpJEe6>Q5-hrsthRawNJC*#9oNp!FIyeEvEymV%E6LU}14PQ*BmVXNeM?HhV8S=I50t=$(R9aAq4V@3M~}PLPRa8$O=~;h{rH zrf>5qp-fDeDU;s4>&!s3IRg=B7OHwy);S z4IqNb?bye8XTKHckB-2}1F9r9>|Ycta1!_myn4-y*Gwyutgs-cVL&hytAp_?z*Cb<*hp;a* z?$MV;R(n&#c!gYoa(?RW6?u1u`NrxTN@AZ9eCPE=5p<_q&e-{7UI{!=c7ruQE8 z`<~_sWrK!TFB_tHqy23pY&J+}TwuN!uWIng+o>DCxvj0CdKk9vl6CYsrekCd7DcT3 zo-*xh$re|X1T{X)-pUoZQ!KrKZo4cSY@*9umHf*x0&S! z=bvrE?MU<^_khxGf|1$V;@^)#r2gZL9yIEHxVLn6?sJ^t-Ag(D$X}K9B**Fmp!5-t z+;GtRkXm^bC#{kb_S0YUDZg?6;oc2WlM`TXI9L>LJ%6qgPETK-v zvj1hvKfF^s8eRxk+oq%KqDLWY{A=R>S;9w+rH(dJe92=?CkFQOR~>b!PS`CI{PCi) z2!zG%`^GMiN!e+8`YpdH25=yeT!NezsA@$Yz&MseAKWV?5cGDjW1;wT1rQMaU1@9Y zl50CVo)`0Yi7(*$B1J%oOh_RClRy9ykf!1&f}nu(q9R>D zktP9Q5J9AgGy~Fiu_CSbG@RtbgsuT^eP3NjienSiu6WKKJaM2Juxe-;w+UT5!4v~ZwQGv+I zBIV@dMU+VJHKu}}}?&4b>bkXie63*2FMCrPx^?$3LvQE%yN=y0yj;;xGqgL= zlY~Sw&BZssuBtjDG{S>OvLF&KZFTY-mgqrr#}ZvdV2Tj9$d5({B#y8lIkE{cGE&ti zxO*T7NVLALh8WWc1cyVZYAYycE2=1~$Q{>#$;<1>ojk6mtgWB|mxIaaz!h}lx3IcI zq$eIt@Yuqlwy`Jw5W6uEcvog*T{H=I8I95-5%D6MRjcCuI2YwV^!FW$`r}-V{~;F2 zOa{7fw*PY0TO#HFZLq&iFZ1Qs`9~9&Lr-E(H{&a?XLDu&R3-Bkff(IDAOQO7#IjA` zU+FuX1q5PhnZI8Zf0bcW0^A%xG{69ZxB(V!5SSaps0MO25(8Mk%)c$-U}xh5vF-%# z_^ko}*f>~N**SOo0DxFnK|5I4cd~+6H(_k-AQtcrRu1m=XzPysRsw>e`*`@%k7t}T zZ4u+;D=NOl2~#Fxk4W6OsVy!kMd1bkATSGvgJTC9_@7~!aMm4c-0veSBG2=)?-!Lf zMYy%LDV=;?;CXeQ*!4hV9$pSc7qA=5OqLtW4QK(YOIr#551wcPY1-X0Xo8$U=e?}6 z!xNu53Da+-xx@qCb~Os%10nJ>_42|VjvDUn`Nsi=!^*zKE#E+v;6l;UcuQ?pwa`w zwJG`%cLPPasK_6B)t=$7w@>5%ZA9n30!*B)n1J4 zXs^RrU=?BdX9A2qaW973_vA(dtx^pm%{wT|u$b`#Kg<*9l#6^4A&9+FjZbe~{^>WR z@2PNKUe{A!3GuP%DEw9{uYdX2p$^k*%V6th671+&@ZIQA3llO~_0d?b9a15)KqI4f%OxQ+!)kn5at)KneO3O(106w!1P`%j^rrEa( zZ@dI*(=6~>Sh95{R|=X>)I0a_zEO`oB~`fYV*J@AeGdcBjQ-k7>t9Dz(H@f)1?|}T zE(_X3fAD`PgKH~ZJuisKCXQ-I+zokO1z2}EF1oaK&Z(rWu?B$MHcArh`xyN3#V`X1 zWdMqIAK0DvO`SKb{e6Y5_(d^*qwc__mW}jHBCoUYVA_q>CVEMx&L3spTX#kCctsxR z%VRHf6jmE!MQ4>8x{z(F2Ph$)jAJWU}NZ zHEwKDsKNV5&4h-}U)^Z>^6&EWDCfHckLuJtM>!rK2k{3}F$bS2DX z-n+AJwADCzxl~ybWm0ISl;&8J{>}iarAD2rB zKN%&prz7Csn*iGLl)j?6ur5ot7zRpyqXfVsHs2<$^mR8}kMLe7eIuhul#QOhaEO*Y zbXyg{jZwYr@K?|Hq97C)hw5` z^A0nn7nTrLdS-4<6I{_0{$+sskOtx4OCR%keB&?fyMmvkXT|fjthL+U9*fJ$ zy-n~pG_^k@b|g!@wFX03Np2h!3dPK8)!dMNZ|oC5E0>mTvR?5}YwGE2`L@@GhobILb3{Sv{{YpaJqJu{L*VXuKHG3_rDgktlo9XG>#8H zuabGoDqX-tPuY0p+Cmqf4s`!6xbEw6O9P1OoM9)% zQF{6_w_|L~qFY!9ETv|$g-`cmD^@C0Gv+o_x8X_}(PVEJ=aL%c9kn6fi8G!Ge{YMd7=|tmb6wuBZ`ZoUw z*7fB4+eg$m`&0Gi7T#i*9#2y^_mb}Pr+iAer;0izS@IOz=s+<4*J_hAM~Eq3wc%>X z^aad|MF9BETLkRR)Ln&f?#`*f%dH!l}3L=prU9W(iMa*7J*&J_8$C$h!Gu!pqZ-?#5lJ@%Ny7dkE zWz8fmWiAd^tO}>+cQnO}RBqf7mihH(T9H#k24M0+>*sguNz~3Mnc}bBdCfUqO3__0 z&E0c-5jy#1u)6`j(}n-1-LZVzvEsfyak07Di!?*gpuec~zqgY8mi#HbFOC6B_$Afb zsv?s&dJ1r*=;G5JM4hSi|FO;4DKl`A>tqT4{!G6#ZV0q{*5aAIT5t#h=yN{1YCG;w zXx(FLyB?*FG%(3uIdi%xTS0UrcYd{Ab~Pz`cKo7I>OvZPVO@FfUBUKF5kJDYy;b%+ zoKI;kuIe^_3EYpfj5dG4Wjywo{d#+CcKwdUb4g{n-hssY9>n@YA1b$1Yo)Q*z|iJw zyNq1~jRB-2`4=zKqjKv8I6xNjdvgx^zU1#poCat3VrM6(i`u3F{%p~qO`gkU`W%K*^d~_{Bk^>#wGQp8n@bMRbo?-ic}$a@bk>I1(K?%L zdfvs?S#}M_1s_wGJEkw3WBeq)nWM&f8NpFmrn$%Jl%EjxNSdQ_8nJpco!&S)pjkH{ zuf-W;-p7Z{N?gpz%80rBsG;_yR)66keQLkXLKm5}VA=ry! zh&QDLInU`mjRodkY|iCr`wwIqC}NwTiCj;+We_umy`~O)p;GgUWgE^Do?HvZ69y|ck}NCm$$coshNd}UQZ zj?U%w^4R+a4F`)ds=HXvgquC+v?7x(ia+BI`ZAaUX&r57(i{i1 zcqKj2bjm#}wTS3MC_Z`O@36nj3ui1;SmpTA6BS1N6GoAFAe8o+DdUUx%~0+Vjb6T@P+b3PT8 zmdlo=-!XNbuXlq_#yrXhO7dldL(g%#OL0_KFB`VZm6AiQNR9*JAJa)d`;hI4j^}WT`n@oaTrQ` z-<22}HrC;_7e@bp-;D``95yn%_$~x7ngdA)T*K$$7(l0X*%47}`<@D(yeB#bwk4X=v&x|=x{W?RJJMv|~= z@uD2vej_J<|NddMaoXQWv_rV>^u@l^inj@s`+wLFf{&VNHeAy==621p?2eg(vXj7B z^3SHnafhTVJFu@ViMoZ>4Nc~L(US}9%aH))d`CPw8;%LRj^t+mpkA_(Pt~)J7fuqV zh5mvZd|x6->W;6!<`It3;$3#BN8xrBHIJi4?+dM~?(-M&nwVZzs}K6IZl+Pt=Yvl_ zw*Pz5TaW)-{{K&FZ>tLcz=5`FbhZ~*RyAHoeE!6@C%Yx|#F_kG)EDYsNWDgNm+^TF zOXYhH@NlN(5Iw{46y|-^-`DU-g^0=^I1JfG>G}-dSs(F)R-M*@+T<7ZWode?Z#lpK zBpASlsp1F1gUPEx3v+B1tCXvrA~W72A4l5gSqWM;>(=9W9S)Y|ruFNqV~f2NOBEHG z<8u|LRg)F}0wfCRq>6`)%Kb9H!CTCnL3`+f7l)da*T~CHZm@jXu40=5 zC6wtOo1fJieduQ1k{)SOyvrj>DYd#6y^}nq&}6dLNdvd`5-kXUN`|y7ixzO4kM0ET zd|$}bZMlH4z{A74Qh2a@V)_Qx?d^N&D52Fh(kbBuRFic0@zsROW`-WeT9WuK*BIQL zxkMBAIq}n}M_*~>iKRWPpufR_+1vb5y4EiiF0OdArqVs@ZB$|h37TK04u@I|Oy7DU sCFF4392NQYQg}T3jfccLMGpf*lFi@i$tRD{IIkBz*sk_}$uVgE0Mj^W00000 literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/structures/logicalStructureLeft.jpg b/plugin/src/assets/img/structures/logicalStructureLeft.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3b15fabe708ad0caaa0eb01ae19b05ba86109c1a GIT binary patch literal 5615 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 b*5*uykGnE9{u%VKviCRH{`**F+Q7d6#zJas literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/structures/mindMap.jpg b/plugin/src/assets/img/structures/mindMap.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05b19faab3a391470ef5c175147a92bafbcd5bc9 GIT binary patch literal 6327 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 GANm*hAQk}t literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/structures/rightFishbone.jpg b/plugin/src/assets/img/structures/rightFishbone.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c65273f26564da95f459838537e24a02124e9a1 GIT binary patch literal 6529 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 literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/structures/rightFishbone2.jpg b/plugin/src/assets/img/structures/rightFishbone2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aa6eec580553f3d1c86a52d8db22f476ceb70b76 GIT binary patch literal 9709 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 O|KX(n9oFx7;C}!|UxJ(f literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/structures/timeline.jpg b/plugin/src/assets/img/structures/timeline.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3cd7b9d42c6fd95789214a7addc90e1bbedbb7ae GIT binary patch literal 8442 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 literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/structures/timeline2.jpg b/plugin/src/assets/img/structures/timeline2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..28797f6fa50b0c8bcf1cbafcbc523d2737eafe56 GIT binary patch literal 8119 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 literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/structures/verticalTimeline.jpg b/plugin/src/assets/img/structures/verticalTimeline.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4c4249cdd72b6cfda3cb6ec81da59f61428969c GIT binary patch literal 8505 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 literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/structures/verticalTimeline2.jpg b/plugin/src/assets/img/structures/verticalTimeline2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a52856e714553389a8de617de807b6e23c16c74c GIT binary patch literal 7523 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 literal 0 HcmV?d00001 diff --git a/plugin/src/assets/img/图片加载失败.svg b/plugin/src/assets/img/图片加载失败.svg new file mode 100644 index 0000000..1b0f7d8 --- /dev/null +++ b/plugin/src/assets/img/图片加载失败.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-.svg b/plugin/src/assets/svg/business/-.svg new file mode 100644 index 0000000..2f23963 --- /dev/null +++ b/plugin/src/assets/svg/business/-.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_1.svg b/plugin/src/assets/svg/business/-_1.svg new file mode 100644 index 0000000..464b38f --- /dev/null +++ b/plugin/src/assets/svg/business/-_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_10.svg b/plugin/src/assets/svg/business/-_10.svg new file mode 100644 index 0000000..29b5d6c --- /dev/null +++ b/plugin/src/assets/svg/business/-_10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_11.svg b/plugin/src/assets/svg/business/-_11.svg new file mode 100644 index 0000000..70edb4b --- /dev/null +++ b/plugin/src/assets/svg/business/-_11.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_12.svg b/plugin/src/assets/svg/business/-_12.svg new file mode 100644 index 0000000..2dca3f2 --- /dev/null +++ b/plugin/src/assets/svg/business/-_12.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_13.svg b/plugin/src/assets/svg/business/-_13.svg new file mode 100644 index 0000000..0b9b863 --- /dev/null +++ b/plugin/src/assets/svg/business/-_13.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_14.svg b/plugin/src/assets/svg/business/-_14.svg new file mode 100644 index 0000000..764bc47 --- /dev/null +++ b/plugin/src/assets/svg/business/-_14.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_15.svg b/plugin/src/assets/svg/business/-_15.svg new file mode 100644 index 0000000..1f7dbc4 --- /dev/null +++ b/plugin/src/assets/svg/business/-_15.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_16.svg b/plugin/src/assets/svg/business/-_16.svg new file mode 100644 index 0000000..455fd26 --- /dev/null +++ b/plugin/src/assets/svg/business/-_16.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_17.svg b/plugin/src/assets/svg/business/-_17.svg new file mode 100644 index 0000000..36ff112 --- /dev/null +++ b/plugin/src/assets/svg/business/-_17.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_18.svg b/plugin/src/assets/svg/business/-_18.svg new file mode 100644 index 0000000..df0bb8f --- /dev/null +++ b/plugin/src/assets/svg/business/-_18.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_2.svg b/plugin/src/assets/svg/business/-_2.svg new file mode 100644 index 0000000..802a446 --- /dev/null +++ b/plugin/src/assets/svg/business/-_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_3.svg b/plugin/src/assets/svg/business/-_3.svg new file mode 100644 index 0000000..9f64cec --- /dev/null +++ b/plugin/src/assets/svg/business/-_3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_4.svg b/plugin/src/assets/svg/business/-_4.svg new file mode 100644 index 0000000..fbd7e46 --- /dev/null +++ b/plugin/src/assets/svg/business/-_4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_5.svg b/plugin/src/assets/svg/business/-_5.svg new file mode 100644 index 0000000..a9cbd0c --- /dev/null +++ b/plugin/src/assets/svg/business/-_5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_6.svg b/plugin/src/assets/svg/business/-_6.svg new file mode 100644 index 0000000..add3e62 --- /dev/null +++ b/plugin/src/assets/svg/business/-_6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_7.svg b/plugin/src/assets/svg/business/-_7.svg new file mode 100644 index 0000000..ae7bd9c --- /dev/null +++ b/plugin/src/assets/svg/business/-_7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_8.svg b/plugin/src/assets/svg/business/-_8.svg new file mode 100644 index 0000000..437543c --- /dev/null +++ b/plugin/src/assets/svg/business/-_8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/-_9.svg b/plugin/src/assets/svg/business/-_9.svg new file mode 100644 index 0000000..bab1c67 --- /dev/null +++ b/plugin/src/assets/svg/business/-_9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/OAxitong.svg b/plugin/src/assets/svg/business/OAxitong.svg new file mode 100644 index 0000000..df92799 --- /dev/null +++ b/plugin/src/assets/svg/business/OAxitong.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/changyongziyuan.svg b/plugin/src/assets/svg/business/changyongziyuan.svg new file mode 100644 index 0000000..cae6e96 --- /dev/null +++ b/plugin/src/assets/svg/business/changyongziyuan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/chuchashenpi.svg b/plugin/src/assets/svg/business/chuchashenpi.svg new file mode 100644 index 0000000..eab1129 --- /dev/null +++ b/plugin/src/assets/svg/business/chuchashenpi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/fanwendengji.svg b/plugin/src/assets/svg/business/fanwendengji.svg new file mode 100644 index 0000000..de2c15b --- /dev/null +++ b/plugin/src/assets/svg/business/fanwendengji.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/feizhengshiwendengji.svg b/plugin/src/assets/svg/business/feizhengshiwendengji.svg new file mode 100644 index 0000000..632f927 --- /dev/null +++ b/plugin/src/assets/svg/business/feizhengshiwendengji.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/gongwenjiaohuan.svg b/plugin/src/assets/svg/business/gongwenjiaohuan.svg new file mode 100644 index 0000000..f7f14c5 --- /dev/null +++ b/plugin/src/assets/svg/business/gongwenjiaohuan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/gongzuohuibao.svg b/plugin/src/assets/svg/business/gongzuohuibao.svg new file mode 100644 index 0000000..3bab822 --- /dev/null +++ b/plugin/src/assets/svg/business/gongzuohuibao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/gudingzichan.svg b/plugin/src/assets/svg/business/gudingzichan.svg new file mode 100644 index 0000000..57613ae --- /dev/null +++ b/plugin/src/assets/svg/business/gudingzichan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/huiyiguanli.svg b/plugin/src/assets/svg/business/huiyiguanli.svg new file mode 100644 index 0000000..2af78df --- /dev/null +++ b/plugin/src/assets/svg/business/huiyiguanli.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/huiyiyuding.svg b/plugin/src/assets/svg/business/huiyiyuding.svg new file mode 100644 index 0000000..cc09cc4 --- /dev/null +++ b/plugin/src/assets/svg/business/huiyiyuding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/kaoqinguanli.svg b/plugin/src/assets/svg/business/kaoqinguanli.svg new file mode 100644 index 0000000..719d3a6 --- /dev/null +++ b/plugin/src/assets/svg/business/kaoqinguanli.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/qingxiujiashenqing.svg b/plugin/src/assets/svg/business/qingxiujiashenqing.svg new file mode 100644 index 0000000..d4abc1e --- /dev/null +++ b/plugin/src/assets/svg/business/qingxiujiashenqing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/sannianjihua.svg b/plugin/src/assets/svg/business/sannianjihua.svg new file mode 100644 index 0000000..51155dc --- /dev/null +++ b/plugin/src/assets/svg/business/sannianjihua.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/tongzhifabu.svg b/plugin/src/assets/svg/business/tongzhifabu.svg new file mode 100644 index 0000000..33ab042 --- /dev/null +++ b/plugin/src/assets/svg/business/tongzhifabu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/xiangmuguanli.svg b/plugin/src/assets/svg/business/xiangmuguanli.svg new file mode 100644 index 0000000..e6bb522 --- /dev/null +++ b/plugin/src/assets/svg/business/xiangmuguanli.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/xinxitougao.svg b/plugin/src/assets/svg/business/xinxitougao.svg new file mode 100644 index 0000000..b7d79ef --- /dev/null +++ b/plugin/src/assets/svg/business/xinxitougao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/zhishichanquan.svg b/plugin/src/assets/svg/business/zhishichanquan.svg new file mode 100644 index 0000000..8c00607 --- /dev/null +++ b/plugin/src/assets/svg/business/zhishichanquan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/zhongxindongtaifabu.svg b/plugin/src/assets/svg/business/zhongxindongtaifabu.svg new file mode 100644 index 0000000..c8d37c5 --- /dev/null +++ b/plugin/src/assets/svg/business/zhongxindongtaifabu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/zongheshenpi.svg b/plugin/src/assets/svg/business/zongheshenpi.svg new file mode 100644 index 0000000..de28086 --- /dev/null +++ b/plugin/src/assets/svg/business/zongheshenpi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/business/商务 b/plugin/src/assets/svg/business/商务 new file mode 100644 index 0000000..e69de29 diff --git a/plugin/src/assets/svg/education/DNA.svg b/plugin/src/assets/svg/education/DNA.svg new file mode 100644 index 0000000..2037d53 --- /dev/null +++ b/plugin/src/assets/svg/education/DNA.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-1-shilibiao.svg b/plugin/src/assets/svg/education/a-1-shilibiao.svg new file mode 100644 index 0000000..682ab62 --- /dev/null +++ b/plugin/src/assets/svg/education/a-1-shilibiao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-10-yiliaoxiang.svg b/plugin/src/assets/svg/education/a-10-yiliaoxiang.svg new file mode 100644 index 0000000..51e1186 --- /dev/null +++ b/plugin/src/assets/svg/education/a-10-yiliaoxiang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-11-yiyongweishengzhi.svg b/plugin/src/assets/svg/education/a-11-yiyongweishengzhi.svg new file mode 100644 index 0000000..34cb782 --- /dev/null +++ b/plugin/src/assets/svg/education/a-11-yiyongweishengzhi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-12-huxi.svg b/plugin/src/assets/svg/education/a-12-huxi.svg new file mode 100644 index 0000000..0ca0dc4 --- /dev/null +++ b/plugin/src/assets/svg/education/a-12-huxi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-13-xiguan.svg b/plugin/src/assets/svg/education/a-13-xiguan.svg new file mode 100644 index 0000000..4f41df0 --- /dev/null +++ b/plugin/src/assets/svg/education/a-13-xiguan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-14-zhutingqi.svg b/plugin/src/assets/svg/education/a-14-zhutingqi.svg new file mode 100644 index 0000000..fd11785 --- /dev/null +++ b/plugin/src/assets/svg/education/a-14-zhutingqi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-15-bingdu.svg b/plugin/src/assets/svg/education/a-15-bingdu.svg new file mode 100644 index 0000000..0bd3f3d --- /dev/null +++ b/plugin/src/assets/svg/education/a-15-bingdu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-16-yiyuan.svg b/plugin/src/assets/svg/education/a-16-yiyuan.svg new file mode 100644 index 0000000..aa4f1d7 --- /dev/null +++ b/plugin/src/assets/svg/education/a-16-yiyuan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-17-zhusheqi.svg b/plugin/src/assets/svg/education/a-17-zhusheqi.svg new file mode 100644 index 0000000..4f1ffbc --- /dev/null +++ b/plugin/src/assets/svg/education/a-17-zhusheqi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-18-xiguan.svg b/plugin/src/assets/svg/education/a-18-xiguan.svg new file mode 100644 index 0000000..f1f98c7 --- /dev/null +++ b/plugin/src/assets/svg/education/a-18-xiguan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-19guaizhang.svg b/plugin/src/assets/svg/education/a-19guaizhang.svg new file mode 100644 index 0000000..f64bfbd --- /dev/null +++ b/plugin/src/assets/svg/education/a-19guaizhang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-2-kouzhao.svg b/plugin/src/assets/svg/education/a-2-kouzhao.svg new file mode 100644 index 0000000..15c26a6 --- /dev/null +++ b/plugin/src/assets/svg/education/a-2-kouzhao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-20-shuye.svg b/plugin/src/assets/svg/education/a-20-shuye.svg new file mode 100644 index 0000000..7a3403b --- /dev/null +++ b/plugin/src/assets/svg/education/a-20-shuye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-3-chuangkoutie.svg b/plugin/src/assets/svg/education/a-3-chuangkoutie.svg new file mode 100644 index 0000000..3cbdb6e --- /dev/null +++ b/plugin/src/assets/svg/education/a-3-chuangkoutie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-4-lunyi.svg b/plugin/src/assets/svg/education/a-4-lunyi.svg new file mode 100644 index 0000000..4c401e9 --- /dev/null +++ b/plugin/src/assets/svg/education/a-4-lunyi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-5-mianqian.svg b/plugin/src/assets/svg/education/a-5-mianqian.svg new file mode 100644 index 0000000..7002809 --- /dev/null +++ b/plugin/src/assets/svg/education/a-5-mianqian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-6-jiancebi.svg b/plugin/src/assets/svg/education/a-6-jiancebi.svg new file mode 100644 index 0000000..599ae63 --- /dev/null +++ b/plugin/src/assets/svg/education/a-6-jiancebi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-7-xinzang.svg b/plugin/src/assets/svg/education/a-7-xinzang.svg new file mode 100644 index 0000000..962d8e3 --- /dev/null +++ b/plugin/src/assets/svg/education/a-7-xinzang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-8-DNA.svg b/plugin/src/assets/svg/education/a-8-DNA.svg new file mode 100644 index 0000000..2cef90f --- /dev/null +++ b/plugin/src/assets/svg/education/a-8-DNA.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-9-tizhongcheng.svg b/plugin/src/assets/svg/education/a-9-tizhongcheng.svg new file mode 100644 index 0000000..fcb25b7 --- /dev/null +++ b/plugin/src/assets/svg/education/a-9-tizhongcheng.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-bitong1.svg b/plugin/src/assets/svg/education/a-bitong1.svg new file mode 100644 index 0000000..a611cf3 --- /dev/null +++ b/plugin/src/assets/svg/education/a-bitong1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-shu2.svg b/plugin/src/assets/svg/education/a-shu2.svg new file mode 100644 index 0000000..f8a272b --- /dev/null +++ b/plugin/src/assets/svg/education/a-shu2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-shu4.svg b/plugin/src/assets/svg/education/a-shu4.svg new file mode 100644 index 0000000..a8a8e67 --- /dev/null +++ b/plugin/src/assets/svg/education/a-shu4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-shu5.svg b/plugin/src/assets/svg/education/a-shu5.svg new file mode 100644 index 0000000..104124d --- /dev/null +++ b/plugin/src/assets/svg/education/a-shu5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-shuben2.svg b/plugin/src/assets/svg/education/a-shuben2.svg new file mode 100644 index 0000000..52bb174 --- /dev/null +++ b/plugin/src/assets/svg/education/a-shuben2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-shuben3.svg b/plugin/src/assets/svg/education/a-shuben3.svg new file mode 100644 index 0000000..f7cef20 --- /dev/null +++ b/plugin/src/assets/svg/education/a-shuben3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-shuben4.svg b/plugin/src/assets/svg/education/a-shuben4.svg new file mode 100644 index 0000000..bd0bcec --- /dev/null +++ b/plugin/src/assets/svg/education/a-shuben4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/a-xueshimao1.svg b/plugin/src/assets/svg/education/a-xueshimao1.svg new file mode 100644 index 0000000..622b351 --- /dev/null +++ b/plugin/src/assets/svg/education/a-xueshimao1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/baichui.svg b/plugin/src/assets/svg/education/baichui.svg new file mode 100644 index 0000000..036ae9f --- /dev/null +++ b/plugin/src/assets/svg/education/baichui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/bijiben.svg b/plugin/src/assets/svg/education/bijiben.svg new file mode 100644 index 0000000..0859802 --- /dev/null +++ b/plugin/src/assets/svg/education/bijiben.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/bitong.svg b/plugin/src/assets/svg/education/bitong.svg new file mode 100644 index 0000000..85d7bbb --- /dev/null +++ b/plugin/src/assets/svg/education/bitong.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/chizi.svg b/plugin/src/assets/svg/education/chizi.svg new file mode 100644 index 0000000..32b95a0 --- /dev/null +++ b/plugin/src/assets/svg/education/chizi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/chongdian.svg b/plugin/src/assets/svg/education/chongdian.svg new file mode 100644 index 0000000..2839d2d --- /dev/null +++ b/plugin/src/assets/svg/education/chongdian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/citie.svg b/plugin/src/assets/svg/education/citie.svg new file mode 100644 index 0000000..bf322cf --- /dev/null +++ b/plugin/src/assets/svg/education/citie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/daima.svg b/plugin/src/assets/svg/education/daima.svg new file mode 100644 index 0000000..3adca80 --- /dev/null +++ b/plugin/src/assets/svg/education/daima.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/deng.svg b/plugin/src/assets/svg/education/deng.svg new file mode 100644 index 0000000..31f3122 --- /dev/null +++ b/plugin/src/assets/svg/education/deng.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/dianliushiyan.svg b/plugin/src/assets/svg/education/dianliushiyan.svg new file mode 100644 index 0000000..29c3947 --- /dev/null +++ b/plugin/src/assets/svg/education/dianliushiyan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/diqiu.svg b/plugin/src/assets/svg/education/diqiu.svg new file mode 100644 index 0000000..50c3d34 --- /dev/null +++ b/plugin/src/assets/svg/education/diqiu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/diqiuyi.svg b/plugin/src/assets/svg/education/diqiuyi.svg new file mode 100644 index 0000000..e4f5975 --- /dev/null +++ b/plugin/src/assets/svg/education/diqiuyi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/fanyi.svg b/plugin/src/assets/svg/education/fanyi.svg new file mode 100644 index 0000000..fd1de51 --- /dev/null +++ b/plugin/src/assets/svg/education/fanyi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/gongwenbao.svg b/plugin/src/assets/svg/education/gongwenbao.svg new file mode 100644 index 0000000..1a0d104 --- /dev/null +++ b/plugin/src/assets/svg/education/gongwenbao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/heiban.svg b/plugin/src/assets/svg/education/heiban.svg new file mode 100644 index 0000000..b652661 --- /dev/null +++ b/plugin/src/assets/svg/education/heiban.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/huiyi.svg b/plugin/src/assets/svg/education/huiyi.svg new file mode 100644 index 0000000..b83a315 --- /dev/null +++ b/plugin/src/assets/svg/education/huiyi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/jiangbei.svg b/plugin/src/assets/svg/education/jiangbei.svg new file mode 100644 index 0000000..15b2575 --- /dev/null +++ b/plugin/src/assets/svg/education/jiangbei.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/jiaoxuelou.svg b/plugin/src/assets/svg/education/jiaoxuelou.svg new file mode 100644 index 0000000..e943339 --- /dev/null +++ b/plugin/src/assets/svg/education/jiaoxuelou.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/jinpai.svg b/plugin/src/assets/svg/education/jinpai.svg new file mode 100644 index 0000000..dd07c1e --- /dev/null +++ b/plugin/src/assets/svg/education/jinpai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/jisuan.svg b/plugin/src/assets/svg/education/jisuan.svg new file mode 100644 index 0000000..388e131 --- /dev/null +++ b/plugin/src/assets/svg/education/jisuan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/jisuanqi.svg b/plugin/src/assets/svg/education/jisuanqi.svg new file mode 100644 index 0000000..455bc7c --- /dev/null +++ b/plugin/src/assets/svg/education/jisuanqi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/naozhong.svg b/plugin/src/assets/svg/education/naozhong.svg new file mode 100644 index 0000000..0901e9e --- /dev/null +++ b/plugin/src/assets/svg/education/naozhong.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/qianbi.svg b/plugin/src/assets/svg/education/qianbi.svg new file mode 100644 index 0000000..11926c7 --- /dev/null +++ b/plugin/src/assets/svg/education/qianbi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/sepan.svg b/plugin/src/assets/svg/education/sepan.svg new file mode 100644 index 0000000..a99429f --- /dev/null +++ b/plugin/src/assets/svg/education/sepan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/shiyan.svg b/plugin/src/assets/svg/education/shiyan.svg new file mode 100644 index 0000000..691625d --- /dev/null +++ b/plugin/src/assets/svg/education/shiyan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/shouji.svg b/plugin/src/assets/svg/education/shouji.svg new file mode 100644 index 0000000..9931596 --- /dev/null +++ b/plugin/src/assets/svg/education/shouji.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/shuben.svg b/plugin/src/assets/svg/education/shuben.svg new file mode 100644 index 0000000..2e00a4b --- /dev/null +++ b/plugin/src/assets/svg/education/shuben.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/shuxie.svg b/plugin/src/assets/svg/education/shuxie.svg new file mode 100644 index 0000000..99eb780 --- /dev/null +++ b/plugin/src/assets/svg/education/shuxie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/sousuo.svg b/plugin/src/assets/svg/education/sousuo.svg new file mode 100644 index 0000000..196d967 --- /dev/null +++ b/plugin/src/assets/svg/education/sousuo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/suanpan.svg b/plugin/src/assets/svg/education/suanpan.svg new file mode 100644 index 0000000..3bdacb5 --- /dev/null +++ b/plugin/src/assets/svg/education/suanpan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/tianping.svg b/plugin/src/assets/svg/education/tianping.svg new file mode 100644 index 0000000..42ed4fd --- /dev/null +++ b/plugin/src/assets/svg/education/tianping.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/tingzhenqi.svg b/plugin/src/assets/svg/education/tingzhenqi.svg new file mode 100644 index 0000000..ec16619 --- /dev/null +++ b/plugin/src/assets/svg/education/tingzhenqi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/tiyu.svg b/plugin/src/assets/svg/education/tiyu.svg new file mode 100644 index 0000000..d24aba2 --- /dev/null +++ b/plugin/src/assets/svg/education/tiyu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/wenjian.svg b/plugin/src/assets/svg/education/wenjian.svg new file mode 100644 index 0000000..3cf32e0 --- /dev/null +++ b/plugin/src/assets/svg/education/wenjian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/xianweijing.svg b/plugin/src/assets/svg/education/xianweijing.svg new file mode 100644 index 0000000..aa5ffd1 --- /dev/null +++ b/plugin/src/assets/svg/education/xianweijing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/xiaoheiban.svg b/plugin/src/assets/svg/education/xiaoheiban.svg new file mode 100644 index 0000000..a4984ac --- /dev/null +++ b/plugin/src/assets/svg/education/xiaoheiban.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/xiezizhuo.svg b/plugin/src/assets/svg/education/xiezizhuo.svg new file mode 100644 index 0000000..f0b044d --- /dev/null +++ b/plugin/src/assets/svg/education/xiezizhuo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/xueshimao.svg b/plugin/src/assets/svg/education/xueshimao.svg new file mode 100644 index 0000000..b8bd58b --- /dev/null +++ b/plugin/src/assets/svg/education/xueshimao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/yuanpan.svg b/plugin/src/assets/svg/education/yuanpan.svg new file mode 100644 index 0000000..0674e52 --- /dev/null +++ b/plugin/src/assets/svg/education/yuanpan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/education/教育 b/plugin/src/assets/svg/education/教育 new file mode 100644 index 0000000..e69de29 diff --git a/plugin/src/assets/svg/festival/celianggongju.svg b/plugin/src/assets/svg/festival/celianggongju.svg new file mode 100644 index 0000000..3a077a1 --- /dev/null +++ b/plugin/src/assets/svg/festival/celianggongju.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/chunjie.svg b/plugin/src/assets/svg/festival/chunjie.svg new file mode 100644 index 0000000..6c031f3 --- /dev/null +++ b/plugin/src/assets/svg/festival/chunjie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/duanwujie.svg b/plugin/src/assets/svg/festival/duanwujie.svg new file mode 100644 index 0000000..b2cf287 --- /dev/null +++ b/plugin/src/assets/svg/festival/duanwujie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/ertongjie.svg b/plugin/src/assets/svg/festival/ertongjie.svg new file mode 100644 index 0000000..604b2e0 --- /dev/null +++ b/plugin/src/assets/svg/festival/ertongjie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/fuqinjie.svg b/plugin/src/assets/svg/festival/fuqinjie.svg new file mode 100644 index 0000000..ec59a88 --- /dev/null +++ b/plugin/src/assets/svg/festival/fuqinjie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/ganenjie.svg b/plugin/src/assets/svg/festival/ganenjie.svg new file mode 100644 index 0000000..bbbc0e4 --- /dev/null +++ b/plugin/src/assets/svg/festival/ganenjie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/gongju.svg b/plugin/src/assets/svg/festival/gongju.svg new file mode 100644 index 0000000..2fba67a --- /dev/null +++ b/plugin/src/assets/svg/festival/gongju.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/hushijie.svg b/plugin/src/assets/svg/festival/hushijie.svg new file mode 100644 index 0000000..967206e --- /dev/null +++ b/plugin/src/assets/svg/festival/hushijie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/jiaoshijie.svg b/plugin/src/assets/svg/festival/jiaoshijie.svg new file mode 100644 index 0000000..eb73ba0 --- /dev/null +++ b/plugin/src/assets/svg/festival/jiaoshijie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/laodongjie.svg b/plugin/src/assets/svg/festival/laodongjie.svg new file mode 100644 index 0000000..1494219 --- /dev/null +++ b/plugin/src/assets/svg/festival/laodongjie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/muqinjie.svg b/plugin/src/assets/svg/festival/muqinjie.svg new file mode 100644 index 0000000..031932e --- /dev/null +++ b/plugin/src/assets/svg/festival/muqinjie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/nvshengjie.svg b/plugin/src/assets/svg/festival/nvshengjie.svg new file mode 100644 index 0000000..e876962 --- /dev/null +++ b/plugin/src/assets/svg/festival/nvshengjie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/qingrenjie.svg b/plugin/src/assets/svg/festival/qingrenjie.svg new file mode 100644 index 0000000..b43b8e3 --- /dev/null +++ b/plugin/src/assets/svg/festival/qingrenjie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/qixi.svg b/plugin/src/assets/svg/festival/qixi.svg new file mode 100644 index 0000000..8c03aaa --- /dev/null +++ b/plugin/src/assets/svg/festival/qixi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/shengdanjie.svg b/plugin/src/assets/svg/festival/shengdanjie.svg new file mode 100644 index 0000000..6c3f735 --- /dev/null +++ b/plugin/src/assets/svg/festival/shengdanjie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/shuang.svg b/plugin/src/assets/svg/festival/shuang.svg new file mode 100644 index 0000000..d55927f --- /dev/null +++ b/plugin/src/assets/svg/festival/shuang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/yuandan.svg b/plugin/src/assets/svg/festival/yuandan.svg new file mode 100644 index 0000000..dc16a3e --- /dev/null +++ b/plugin/src/assets/svg/festival/yuandan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/yuanxiaojie.svg b/plugin/src/assets/svg/festival/yuanxiaojie.svg new file mode 100644 index 0000000..7dfacad --- /dev/null +++ b/plugin/src/assets/svg/festival/yuanxiaojie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/zhongqiujie.svg b/plugin/src/assets/svg/festival/zhongqiujie.svg new file mode 100644 index 0000000..2376894 --- /dev/null +++ b/plugin/src/assets/svg/festival/zhongqiujie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/zhongyangjie.svg b/plugin/src/assets/svg/festival/zhongyangjie.svg new file mode 100644 index 0000000..623717c --- /dev/null +++ b/plugin/src/assets/svg/festival/zhongyangjie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/festival/节日 b/plugin/src/assets/svg/festival/节日 new file mode 100644 index 0000000..e69de29 diff --git a/plugin/src/assets/svg/food/binggan.svg b/plugin/src/assets/svg/food/binggan.svg new file mode 100644 index 0000000..32e0d9e --- /dev/null +++ b/plugin/src/assets/svg/food/binggan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/binggun.svg b/plugin/src/assets/svg/food/binggun.svg new file mode 100644 index 0000000..c260d5e --- /dev/null +++ b/plugin/src/assets/svg/food/binggun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/bingqilin.svg b/plugin/src/assets/svg/food/bingqilin.svg new file mode 100644 index 0000000..705a259 --- /dev/null +++ b/plugin/src/assets/svg/food/bingqilin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/boluo.svg b/plugin/src/assets/svg/food/boluo.svg new file mode 100644 index 0000000..85e7044 --- /dev/null +++ b/plugin/src/assets/svg/food/boluo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/caomei.svg b/plugin/src/assets/svg/food/caomei.svg new file mode 100644 index 0000000..9b60180 --- /dev/null +++ b/plugin/src/assets/svg/food/caomei.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/celianggongju.svg b/plugin/src/assets/svg/food/celianggongju.svg new file mode 100644 index 0000000..3a077a1 --- /dev/null +++ b/plugin/src/assets/svg/food/celianggongju.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/chengzi.svg b/plugin/src/assets/svg/food/chengzi.svg new file mode 100644 index 0000000..5f0d0a5 --- /dev/null +++ b/plugin/src/assets/svg/food/chengzi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/dangao.svg b/plugin/src/assets/svg/food/dangao.svg new file mode 100644 index 0000000..43b3258 --- /dev/null +++ b/plugin/src/assets/svg/food/dangao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/fanqiejiang.svg b/plugin/src/assets/svg/food/fanqiejiang.svg new file mode 100644 index 0000000..c756531 --- /dev/null +++ b/plugin/src/assets/svg/food/fanqiejiang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/gongju.svg b/plugin/src/assets/svg/food/gongju.svg new file mode 100644 index 0000000..2fba67a --- /dev/null +++ b/plugin/src/assets/svg/food/gongju.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/hanbao.svg b/plugin/src/assets/svg/food/hanbao.svg new file mode 100644 index 0000000..6300b0c --- /dev/null +++ b/plugin/src/assets/svg/food/hanbao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/jiandan.svg b/plugin/src/assets/svg/food/jiandan.svg new file mode 100644 index 0000000..073dd55 --- /dev/null +++ b/plugin/src/assets/svg/food/jiandan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/kafeibei.svg b/plugin/src/assets/svg/food/kafeibei.svg new file mode 100644 index 0000000..87fb290 --- /dev/null +++ b/plugin/src/assets/svg/food/kafeibei.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/lajiao.svg b/plugin/src/assets/svg/food/lajiao.svg new file mode 100644 index 0000000..e6cc34d --- /dev/null +++ b/plugin/src/assets/svg/food/lajiao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/naixi.svg b/plugin/src/assets/svg/food/naixi.svg new file mode 100644 index 0000000..5443f8a --- /dev/null +++ b/plugin/src/assets/svg/food/naixi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/niunai.svg b/plugin/src/assets/svg/food/niunai.svg new file mode 100644 index 0000000..dc3e630 --- /dev/null +++ b/plugin/src/assets/svg/food/niunai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/pingguo.svg b/plugin/src/assets/svg/food/pingguo.svg new file mode 100644 index 0000000..3584aab --- /dev/null +++ b/plugin/src/assets/svg/food/pingguo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/pisa.svg b/plugin/src/assets/svg/food/pisa.svg new file mode 100644 index 0000000..f70c521 --- /dev/null +++ b/plugin/src/assets/svg/food/pisa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/putao.svg b/plugin/src/assets/svg/food/putao.svg new file mode 100644 index 0000000..034c01a --- /dev/null +++ b/plugin/src/assets/svg/food/putao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/quqi.svg b/plugin/src/assets/svg/food/quqi.svg new file mode 100644 index 0000000..8021ea3 --- /dev/null +++ b/plugin/src/assets/svg/food/quqi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/regou.svg b/plugin/src/assets/svg/food/regou.svg new file mode 100644 index 0000000..87bcce3 --- /dev/null +++ b/plugin/src/assets/svg/food/regou.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/shutiao.svg b/plugin/src/assets/svg/food/shutiao.svg new file mode 100644 index 0000000..d20a47e --- /dev/null +++ b/plugin/src/assets/svg/food/shutiao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/sudaqishui.svg b/plugin/src/assets/svg/food/sudaqishui.svg new file mode 100644 index 0000000..9d78ae3 --- /dev/null +++ b/plugin/src/assets/svg/food/sudaqishui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/taozi.svg b/plugin/src/assets/svg/food/taozi.svg new file mode 100644 index 0000000..5c1f435 --- /dev/null +++ b/plugin/src/assets/svg/food/taozi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/tiantianquan.svg b/plugin/src/assets/svg/food/tiantianquan.svg new file mode 100644 index 0000000..cd82d7b --- /dev/null +++ b/plugin/src/assets/svg/food/tiantianquan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/xiangjiao.svg b/plugin/src/assets/svg/food/xiangjiao.svg new file mode 100644 index 0000000..e667982 --- /dev/null +++ b/plugin/src/assets/svg/food/xiangjiao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/xigua.svg b/plugin/src/assets/svg/food/xigua.svg new file mode 100644 index 0000000..c98bee4 --- /dev/null +++ b/plugin/src/assets/svg/food/xigua.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/xilanhua.svg b/plugin/src/assets/svg/food/xilanhua.svg new file mode 100644 index 0000000..5d73b2b --- /dev/null +++ b/plugin/src/assets/svg/food/xilanhua.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/yingtao.svg b/plugin/src/assets/svg/food/yingtao.svg new file mode 100644 index 0000000..b3574f1 --- /dev/null +++ b/plugin/src/assets/svg/food/yingtao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/yumi.svg b/plugin/src/assets/svg/food/yumi.svg new file mode 100644 index 0000000..bc66ee2 --- /dev/null +++ b/plugin/src/assets/svg/food/yumi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/food/食物 b/plugin/src/assets/svg/food/食物 new file mode 100644 index 0000000..e69de29 diff --git a/plugin/src/assets/svg/medicine/a-1-shilibiao.svg b/plugin/src/assets/svg/medicine/a-1-shilibiao.svg new file mode 100644 index 0000000..682ab62 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-1-shilibiao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-10-yiliaoxiang.svg b/plugin/src/assets/svg/medicine/a-10-yiliaoxiang.svg new file mode 100644 index 0000000..51e1186 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-10-yiliaoxiang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-11-yiyongweishengzhi.svg b/plugin/src/assets/svg/medicine/a-11-yiyongweishengzhi.svg new file mode 100644 index 0000000..34cb782 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-11-yiyongweishengzhi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-12-huxi.svg b/plugin/src/assets/svg/medicine/a-12-huxi.svg new file mode 100644 index 0000000..0ca0dc4 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-12-huxi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-13-xiguan.svg b/plugin/src/assets/svg/medicine/a-13-xiguan.svg new file mode 100644 index 0000000..4f41df0 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-13-xiguan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-14-zhutingqi.svg b/plugin/src/assets/svg/medicine/a-14-zhutingqi.svg new file mode 100644 index 0000000..fd11785 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-14-zhutingqi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-15-bingdu.svg b/plugin/src/assets/svg/medicine/a-15-bingdu.svg new file mode 100644 index 0000000..0bd3f3d --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-15-bingdu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-16-yiyuan.svg b/plugin/src/assets/svg/medicine/a-16-yiyuan.svg new file mode 100644 index 0000000..aa4f1d7 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-16-yiyuan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-17-zhusheqi.svg b/plugin/src/assets/svg/medicine/a-17-zhusheqi.svg new file mode 100644 index 0000000..4f1ffbc --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-17-zhusheqi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-18-xiguan.svg b/plugin/src/assets/svg/medicine/a-18-xiguan.svg new file mode 100644 index 0000000..f1f98c7 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-18-xiguan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-19guaizhang.svg b/plugin/src/assets/svg/medicine/a-19guaizhang.svg new file mode 100644 index 0000000..f64bfbd --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-19guaizhang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-2-kouzhao.svg b/plugin/src/assets/svg/medicine/a-2-kouzhao.svg new file mode 100644 index 0000000..15c26a6 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-2-kouzhao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-20-shuye.svg b/plugin/src/assets/svg/medicine/a-20-shuye.svg new file mode 100644 index 0000000..7a3403b --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-20-shuye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-3-chuangkoutie.svg b/plugin/src/assets/svg/medicine/a-3-chuangkoutie.svg new file mode 100644 index 0000000..3cbdb6e --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-3-chuangkoutie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-4-lunyi.svg b/plugin/src/assets/svg/medicine/a-4-lunyi.svg new file mode 100644 index 0000000..4c401e9 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-4-lunyi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-5-mianqian.svg b/plugin/src/assets/svg/medicine/a-5-mianqian.svg new file mode 100644 index 0000000..7002809 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-5-mianqian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-6-jiancebi.svg b/plugin/src/assets/svg/medicine/a-6-jiancebi.svg new file mode 100644 index 0000000..599ae63 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-6-jiancebi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-7-xinzang.svg b/plugin/src/assets/svg/medicine/a-7-xinzang.svg new file mode 100644 index 0000000..962d8e3 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-7-xinzang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-8-DNA.svg b/plugin/src/assets/svg/medicine/a-8-DNA.svg new file mode 100644 index 0000000..2cef90f --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-8-DNA.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/a-9-tizhongcheng.svg b/plugin/src/assets/svg/medicine/a-9-tizhongcheng.svg new file mode 100644 index 0000000..fcb25b7 --- /dev/null +++ b/plugin/src/assets/svg/medicine/a-9-tizhongcheng.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/medicine/医疗 b/plugin/src/assets/svg/medicine/医疗 new file mode 100644 index 0000000..e69de29 diff --git a/plugin/src/assets/svg/tools/gaizhui.svg b/plugin/src/assets/svg/tools/gaizhui.svg new file mode 100644 index 0000000..bae28c5 --- /dev/null +++ b/plugin/src/assets/svg/tools/gaizhui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan.svg b/plugin/src/assets/svg/tools/ziyuan.svg new file mode 100644 index 0000000..86c6f89 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_1.svg b/plugin/src/assets/svg/tools/ziyuan_1.svg new file mode 100644 index 0000000..e8081cd --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_10.svg b/plugin/src/assets/svg/tools/ziyuan_10.svg new file mode 100644 index 0000000..bb88c9b --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_11.svg b/plugin/src/assets/svg/tools/ziyuan_11.svg new file mode 100644 index 0000000..9a7ff4e --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_11.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_12.svg b/plugin/src/assets/svg/tools/ziyuan_12.svg new file mode 100644 index 0000000..2cb20b2 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_12.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_13.svg b/plugin/src/assets/svg/tools/ziyuan_13.svg new file mode 100644 index 0000000..6428c97 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_13.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_14.svg b/plugin/src/assets/svg/tools/ziyuan_14.svg new file mode 100644 index 0000000..dfe47e6 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_14.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_15.svg b/plugin/src/assets/svg/tools/ziyuan_15.svg new file mode 100644 index 0000000..4ed2773 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_15.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_16.svg b/plugin/src/assets/svg/tools/ziyuan_16.svg new file mode 100644 index 0000000..c1af7e5 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_16.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_17.svg b/plugin/src/assets/svg/tools/ziyuan_17.svg new file mode 100644 index 0000000..0c3af49 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_17.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_18.svg b/plugin/src/assets/svg/tools/ziyuan_18.svg new file mode 100644 index 0000000..98983ab --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_18.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_2.svg b/plugin/src/assets/svg/tools/ziyuan_2.svg new file mode 100644 index 0000000..4b79c30 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_3.svg b/plugin/src/assets/svg/tools/ziyuan_3.svg new file mode 100644 index 0000000..aa609ad --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_4.svg b/plugin/src/assets/svg/tools/ziyuan_4.svg new file mode 100644 index 0000000..bffbad4 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_5.svg b/plugin/src/assets/svg/tools/ziyuan_5.svg new file mode 100644 index 0000000..72d8f4c --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_6.svg b/plugin/src/assets/svg/tools/ziyuan_6.svg new file mode 100644 index 0000000..d5d13d5 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_7.svg b/plugin/src/assets/svg/tools/ziyuan_7.svg new file mode 100644 index 0000000..4dcbef5 --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_8.svg b/plugin/src/assets/svg/tools/ziyuan_8.svg new file mode 100644 index 0000000..d00334f --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/ziyuan_9.svg b/plugin/src/assets/svg/tools/ziyuan_9.svg new file mode 100644 index 0000000..e0e9e1e --- /dev/null +++ b/plugin/src/assets/svg/tools/ziyuan_9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/tools/工具 b/plugin/src/assets/svg/tools/工具 new file mode 100644 index 0000000..e69de29 diff --git a/plugin/src/assets/svg/travel/banshouli.svg b/plugin/src/assets/svg/travel/banshouli.svg new file mode 100644 index 0000000..11eb441 --- /dev/null +++ b/plugin/src/assets/svg/travel/banshouli.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/chuhangshijian.svg b/plugin/src/assets/svg/travel/chuhangshijian.svg new file mode 100644 index 0000000..fd0ab6f --- /dev/null +++ b/plugin/src/assets/svg/travel/chuhangshijian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/ditu.svg b/plugin/src/assets/svg/travel/ditu.svg new file mode 100644 index 0000000..7af7852 --- /dev/null +++ b/plugin/src/assets/svg/travel/ditu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/fengjing.svg b/plugin/src/assets/svg/travel/fengjing.svg new file mode 100644 index 0000000..1e39d13 --- /dev/null +++ b/plugin/src/assets/svg/travel/fengjing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/gonglve.svg b/plugin/src/assets/svg/travel/gonglve.svg new file mode 100644 index 0000000..b1b72d6 --- /dev/null +++ b/plugin/src/assets/svg/travel/gonglve.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/hangli.svg b/plugin/src/assets/svg/travel/hangli.svg new file mode 100644 index 0000000..c991f89 --- /dev/null +++ b/plugin/src/assets/svg/travel/hangli.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/huafei.svg b/plugin/src/assets/svg/travel/huafei.svg new file mode 100644 index 0000000..de9c9f3 --- /dev/null +++ b/plugin/src/assets/svg/travel/huafei.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/jipiao.svg b/plugin/src/assets/svg/travel/jipiao.svg new file mode 100644 index 0000000..2ac1c49 --- /dev/null +++ b/plugin/src/assets/svg/travel/jipiao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/jiudian.svg b/plugin/src/assets/svg/travel/jiudian.svg new file mode 100644 index 0000000..90fc62b --- /dev/null +++ b/plugin/src/assets/svg/travel/jiudian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/lvban.svg b/plugin/src/assets/svg/travel/lvban.svg new file mode 100644 index 0000000..e70d223 --- /dev/null +++ b/plugin/src/assets/svg/travel/lvban.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/meishi.svg b/plugin/src/assets/svg/travel/meishi.svg new file mode 100644 index 0000000..eea9914 --- /dev/null +++ b/plugin/src/assets/svg/travel/meishi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/menpiao.svg b/plugin/src/assets/svg/travel/menpiao.svg new file mode 100644 index 0000000..e982774 --- /dev/null +++ b/plugin/src/assets/svg/travel/menpiao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/paishe.svg b/plugin/src/assets/svg/travel/paishe.svg new file mode 100644 index 0000000..21cae9e --- /dev/null +++ b/plugin/src/assets/svg/travel/paishe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/qianzheng.svg b/plugin/src/assets/svg/travel/qianzheng.svg new file mode 100644 index 0000000..b25343f --- /dev/null +++ b/plugin/src/assets/svg/travel/qianzheng.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/shangdian.svg b/plugin/src/assets/svg/travel/shangdian.svg new file mode 100644 index 0000000..9611b47 --- /dev/null +++ b/plugin/src/assets/svg/travel/shangdian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/tianqi.svg b/plugin/src/assets/svg/travel/tianqi.svg new file mode 100644 index 0000000..a7eee08 --- /dev/null +++ b/plugin/src/assets/svg/travel/tianqi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/youlechangsuo.svg b/plugin/src/assets/svg/travel/youlechangsuo.svg new file mode 100644 index 0000000..faeb39d --- /dev/null +++ b/plugin/src/assets/svg/travel/youlechangsuo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/yuyanfanyi.svg b/plugin/src/assets/svg/travel/yuyanfanyi.svg new file mode 100644 index 0000000..3206a9d --- /dev/null +++ b/plugin/src/assets/svg/travel/yuyanfanyi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/zhuyishixiang.svg b/plugin/src/assets/svg/travel/zhuyishixiang.svg new file mode 100644 index 0000000..f71e648 --- /dev/null +++ b/plugin/src/assets/svg/travel/zhuyishixiang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/zuche.svg b/plugin/src/assets/svg/travel/zuche.svg new file mode 100644 index 0000000..306ec6b --- /dev/null +++ b/plugin/src/assets/svg/travel/zuche.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/plugin/src/assets/svg/travel/旅行 b/plugin/src/assets/svg/travel/旅行 new file mode 100644 index 0000000..e69de29 diff --git a/plugin/src/components/ImgUpload/index.vue b/plugin/src/components/ImgUpload/index.vue new file mode 100644 index 0000000..049ca7d --- /dev/null +++ b/plugin/src/components/ImgUpload/index.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/plugin/src/components/ImgUpload/style.less b/plugin/src/components/ImgUpload/style.less new file mode 100644 index 0000000..e482775 --- /dev/null +++ b/plugin/src/components/ImgUpload/style.less @@ -0,0 +1,92 @@ +.imgUploadContainer { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + background-color: rgba(255, 255, 255, 0.9); + z-index: 1000; + + &.isDark { + + .imgUploadPanel { + + .imgUploadInputArea { + background-color: #363b3f; + color: hsla(0, 0%, 100%, 0.6); + } + } + + } + + .imgUploadPanel { + position: relative; + width: 100%; + font-size: 22px; + white-space: nowrap; + color: #909090; + cursor: default; + user-select: none; + + .title { + margin-bottom: 15px; + font-size: 22px; + font-weight: 700; + color: hsla(218, 9%, 51%, 0.8); + } + + .closeBtn { + position: absolute; + right: 25px; + top: 32px; + cursor: pointer; + } + + .imgUploadInputArea { + display: block; + width: 100%; + height: 200px; + font-size: 20px; + color: rgba(51, 51, 51, 0.4); + background-color: hsla(0, 0%, 87%, 0.6); + border: none; + outline: none; + cursor: pointer; + text-align: center; + display: flex; + justify-content: center; + align-items: center; + white-space: normal; + padding: 10px; + } + + #imgUploadInput { + display: none; + } + + .uploadInfoBox { + position: relative; + width: 100%; + height: 200px; + background-color: hsla(0, 0%, 87%, 0.6); + + .previewBox { + width: 100%; + height: 100%; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + } + + .delBtn { + position: absolute; + right: 0px; + top: 0px; + cursor: pointer; + width: 20px; + height: 20px; + background-color: #fff; + } + } + } +} \ No newline at end of file diff --git a/plugin/src/config/constant.js b/plugin/src/config/constant.js new file mode 100644 index 0000000..e67596c --- /dev/null +++ b/plugin/src/config/constant.js @@ -0,0 +1,170 @@ +// 布局结构图片映射 +export const layoutImgMap = { + logicalStructure: require('../assets/img/structures/logicalStructure.jpg'), + logicalStructureLeft: require('../assets/img/structures/logicalStructureLeft.jpg'), + mindMap: require('../assets/img/structures/mindMap.jpg'), + organizationStructure: require('../assets/img/structures/organizationStructure.jpg'), + catalogOrganization: require('../assets/img/structures/catalogOrganization.jpg'), + timeline: require('../assets/img/structures/timeline.jpg'), + timeline2: require('../assets/img/structures/timeline2.jpg'), + fishbone: require('../assets/img/structures/fishbone.jpg'), + fishbone2: require('../assets/img/structures/fishbone2.jpg'), + rightFishbone: require('../assets/img/structures/rightFishbone.jpg'), + rightFishbone2: require('../assets/img/structures/rightFishbone2.jpg'), + verticalTimeline: require('../assets/img/structures/verticalTimeline.jpg'), + verticalTimeline2: require('../assets/img/structures/verticalTimeline2.jpg'), + verticalTimeline3: require('../assets/img/structures/verticalTimeline3.jpg') +} + +// 公式列表 +export const formulaList = [ + 'a^2', + 'a_2', + 'a^{2+2}', + 'a_{i,j}', + 'x_2^3', + '\\overbrace{1+2+\\cdots+100}', + '\\sum_{k=1}^N k^2', + '\\lim_{n \\to \\infty}x_n', + '\\int_{-N}^{N} e^x\\, dx', + '\\sqrt{3}', + '\\sqrt[n]{3}', + '\\sin\\theta', + '\\log X', + '\\log_{10}', + '\\log_\\alpha X', + '\\lim_{t\\to n}T', + '\\frac{1}{2}=0.5', + '\\binom{n}{k}', + '\\begin{matrix}x & y \\\\z & v\\end{matrix}', + '\\begin{cases}3x + 5y + z \\\\7x - 2y + 4z \\\\-6x + 3y + 2z\\end{cases}' +] + +// 支持某种连线类型的结构 +export const supportLineStyleLayoutsMap = { + curve: [ + 'logicalStructure', + 'logicalStructureLeft', + 'mindMap', + 'verticalTimeline', + 'organizationStructure' + ], + direct: [ + 'logicalStructure', + 'logicalStructureLeft', + 'mindMap', + 'organizationStructure', + 'verticalTimeline' + ] +} + +// 直线模式支持设置圆角的结构 +export const supportLineRadiusLayouts = [ + 'logicalStructure', + 'logicalStructureLeft', + 'mindMap', + 'verticalTimeline' +] + +// 支持只显示底边直线风格的结构 +export const supportNodeUseLineStyleLayouts = [ + 'logicalStructure', + 'logicalStructureLeft', + 'mindMap', + 'catalogOrganization', + 'organizationStructure' +] + +// 支持曲线模式下,根节点样式和其他节点样式保持一致的结构 +export const supportRootLineKeepSameInCurveLayouts = [ + 'logicalStructure', + 'logicalStructureLeft', + 'mindMap', + 'organizationStructure' +] + +// 彩虹线条配置 +export const rainbowLinesOptions = [ + { + value: 'close' + }, + { + value: 'colors1', + list: [ + 'rgb(255, 213, 73)', + 'rgb(255, 136, 126)', + 'rgb(107, 225, 141)', + 'rgb(151, 171, 255)', + 'rgb(129, 220, 242)', + 'rgb(255, 163, 125)', + 'rgb(152, 132, 234)' + ] + }, + { + value: 'colors2', + list: [ + 'rgb(248, 93, 93)', + 'rgb(255, 151, 84)', + 'rgb(255, 214, 69)', + 'rgb(73, 205, 140)', + 'rgb(64, 192, 255)', + 'rgb(84, 110, 214)', + 'rgb(164, 93, 220)' + ] + }, + { + value: 'colors3', + list: [ + 'rgb(140, 240, 231)', + 'rgb(74, 210, 255)', + 'rgb(65, 168, 243)', + 'rgb(49, 128, 205)', + 'rgb(188, 226, 132)', + 'rgb(113, 215, 123)', + 'rgb(120, 191, 109)' + ] + }, + { + value: 'colors4', + list: [ + 'rgb(169, 98, 99)', + 'rgb(245, 125, 123)', + 'rgb(254, 183, 168)', + 'rgb(251, 218, 171)', + 'rgb(138, 163, 181)', + 'rgb(131, 127, 161)', + 'rgb(84, 83, 140)' + ] + }, + { + value: 'colors5', + list: [ + 'rgb(255, 229, 142)', + 'rgb(254, 158, 41)', + 'rgb(248, 119, 44)', + 'rgb(232, 82, 80)', + 'rgb(182, 66, 98)', + 'rgb(99, 54, 99)', + 'rgb(65, 40, 82)' + ] + }, + { + value: 'colors6', + list: [ + 'rgb(171, 227, 209)', + 'rgb(107, 201, 196)', + 'rgb(55, 170, 169)', + 'rgb(18, 135, 131)', + 'rgb(74, 139, 166)', + 'rgb(75, 105, 150)', + 'rgb(57, 75, 133)' + ] + } +] + +export const toastUiEditorLangMap = { + zh: 'zh-CN', + en: 'en-US', + ['zh-TW']: 'zh-TW', + zhtw: 'zh-TW' +} \ No newline at end of file diff --git a/plugin/src/config/en.js b/plugin/src/config/en.js new file mode 100644 index 0000000..f34276b --- /dev/null +++ b/plugin/src/config/en.js @@ -0,0 +1,619 @@ +// 字体列表 +export const fontFamilyList = [ + { + name: 'Song Ti', + value: '宋体, SimSun, Songti SC' + }, + { + name: 'Microsoft Yahei', + value: '微软雅黑, Microsoft YaHei' + }, + { + name: 'Italics', + value: '楷体, 楷体_GB2312, SimKai, STKaiti' + }, + { + name: 'Boldface', + value: '黑体, SimHei, Heiti SC' + }, + { + name: 'Official script', + value: '隶书, SimLi' + }, + { + name: 'Andale Mono', + value: 'andale mono' + }, + { + name: 'Arial', + value: 'arial, helvetica, sans-serif' + }, + { + name: 'arialBlack', + value: 'arial black, avant garde' + }, + { + name: 'Comic Sans Ms', + value: 'comic sans ms' + }, + { + name: 'Impact', + value: 'impact, chicago' + }, + { + name: 'Times New Roman', + value: 'times new roman' + }, + { + name: 'Sans-Serif', + value: 'sans-serif' + }, + { + name: 'serif', + value: 'serif' + } +] + +// 边框样式 +export const borderDasharrayList = [ + { + name: 'Solid', + value: 'none' + }, + { + name: 'Dotted1', + value: '5,5' + }, + { + name: 'Dotted2', + value: '10,10' + }, + { + name: 'Dotted3', + value: '20,10,5,5,5,10' + }, + { + name: 'Dotted4', + value: '5,5,1,5' + }, + { + name: 'Dotted5', + value: '15,10,5,10,15' + }, + { + name: 'Dotted6', + value: '1,5' + }, + { + name: 'Dotted7', + value: '6,4' + } +] + +// 连线风格 +export const lineStyleList = [ + { + name: 'Straight', + value: 'straight' + }, + { + name: 'Curve', + value: 'curve' + }, + { + name: 'Direct', + value: 'direct' + } +] + +// 曲线风格中,根节点样式是否和其他节点保持一致 +export const rootLineKeepSameInCurveList = [ + { + name: 'Bracket', + value: false + }, + { + name: 'Brace', + value: true + } +] + +// 图片重复方式 +export const backgroundRepeatList = [ + { + name: 'No repeat', + value: 'no-repeat' + }, + { + name: 'Repeat', + value: 'repeat' + }, + { + name: 'Repeat-x', + value: 'repeat-x' + }, + { + name: 'Repeat-y', + value: 'repeat-y' + } +] + +// 背景图片定位 +export const backgroundPositionList = [ + { + name: 'Default', + value: '0% 0%' + }, + { + name: 'Left top', + value: 'left top' + }, + { + name: 'Left center', + value: 'left center' + }, + { + name: 'Left bottom', + value: 'left bottom' + }, + { + name: 'Right top', + value: 'right top' + }, + { + name: 'Right center', + value: 'right center' + }, + { + name: 'Right bottom', + value: 'right bottom' + }, + { + name: 'Center top', + value: 'center top' + }, + { + name: 'Center center', + value: 'center center' + }, + { + name: 'Center bottom', + value: 'center bottom' + } +] + +const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0 +const ctrl = isMac ? '⌘' : 'Ctrl' +const enter = isMac ? 'Return' : 'Enter' +const macFn = isMac ? 'fn + ' : '' + +// 背景图片大小 +export const backgroundSizeList = [ + { + name: 'Auto', + value: 'auto' + }, + { + name: 'Cover', + value: 'cover' + }, + { + name: 'Contain', + value: 'contain' + } +] + +// 快捷键列表 +export const shortcutKeyList = [ + { + type: 'Node operation', + list: [ + { + icon: 'icontianjiazijiedian', + name: 'Inert child node', + value: 'Tab | Insert' + }, + { + icon: 'iconjiedian', + name: 'Insert sibling node', + value: enter + }, + { + icon: 'icondodeparent', + name: 'Insert parent node', + value: 'Shift + Tab' + }, + { + icon: 'iconshangyi', + name: 'Move up node', + value: `${ctrl} + ↑` + }, + { + icon: 'iconxiayi', + name: 'Move down node', + value: `${ctrl} + ↓` + }, + { + icon: 'icongaikuozonglan', + name: 'Insert summary', + value: `${ctrl} + G` + }, + { + icon: 'iconzhankai', + name: 'Expand/UnExpand node', + value: '/' + }, + { + icon: 'iconshanchu', + name: 'Delete node', + value: 'Delete | Backspace' + }, + { + icon: 'iconshanchu', + name: 'Delete current node', + value: 'Shift + Backspace' + }, + { + icon: 'iconfuzhi', + name: 'Copy node', + value: `${ctrl} + C` + }, + { + icon: 'iconjianqie', + name: 'Cut node', + value: `${ctrl} + X` + }, + { + icon: 'iconniantie', + name: 'Paste node', + value: `${ctrl} + V` + }, + { + icon: 'iconbianji', + name: 'Edit node', + value: macFn + 'F2' + }, + { + icon: 'iconhuanhang', + name: 'Text Wrap', + value: `Shift + ${enter}` + }, + { + icon: 'iconhoutui-shi', + name: 'Undo', + value: `${ctrl} + Z` + }, + { + icon: 'iconqianjin1', + name: 'Redo', + value: `${ctrl} + Y` + }, + { + icon: 'iconquanxuan', + name: 'Select All', + value: `${ctrl} + A` + }, + { + icon: 'iconquanxuan', + name: 'Multiple choice', + value: `Right click / ${ctrl} + Left click` + }, + { + icon: 'iconzhengli', + name: 'Arrange layout', + value: `${ctrl} + R` + }, + { + icon: 'iconsousuo', + name: 'Search and Replace', + value: `${ctrl} + F` + } + ] + }, + { + type: 'Canvas operation', + list: [ + { + icon: 'iconfangda', + name: 'Zoom in', + value: `${ctrl} + +` + }, + { + icon: 'iconsuoxiao', + name: 'Zoom out', + value: `${ctrl} + -` + }, + { + icon: 'iconfangda', + name: 'Zoom in/Zoom out', + value: `${ctrl} + Mouse wheel` + }, + { + icon: 'icondingwei', + name: 'Back root node', + value: `${ctrl} + ${enter}` + }, + { + icon: 'iconquanping1', + name: 'Fit canvas', + value: `${ctrl} + i` + }, + { + icon: 'iconshubiaoyidong', + name: 'Moving canvas', + value: `Left click / Right click / Space bar + Left click` + } + ] + }, + { + type: 'Outline Operation', + list: [ + { + icon: 'iconhuanhang', + name: 'Text Wrap', + value: `Shift + ${enter}` + }, + { + icon: 'iconshanchu', + name: 'Delete current node', + value: 'Delete' + }, + { + icon: 'icontianjiazijiedian', + name: 'Inert child node', + value: 'Tab' + }, + { + icon: 'iconjiedian', + name: 'Insert sibling node', + value: enter + }, + { + icon: 'icondodeparent', + name: 'Move up one level', + value: 'Shift + Tab' + } + ] + } +] + +// 形状列表 +export const shapeList = [ + { + name: 'Rectangle', + value: 'rectangle' + }, + { + name: 'Diamond', + value: 'diamond' + }, + { + name: 'Parallelogram', + value: 'parallelogram' + }, + { + name: 'Rounded rectangle', + value: 'roundedRectangle' + }, + { + name: 'Octagonal rectangle', + value: 'octagonalRectangle' + }, + { + name: 'Outer triangular rectangle', + value: 'outerTriangularRectangle' + }, + { + name: 'Inner triangular rectangle', + value: 'innerTriangularRectangle' + }, + { + name: 'Ellipse', + value: 'ellipse' + }, + { + name: 'Circle', + value: 'circle' + } +] + +// 侧边栏列表 +export const sidebarTriggerList = [ + { + name: 'Node style', + value: 'nodeStyle', + icon: 'iconzhuti' + }, + { + name: 'Base style', + value: 'baseStyle', + icon: 'iconyangshi' + }, + { + name: 'Theme', + value: 'theme', + icon: 'iconjingzi' + }, + { + name: 'Structure', + value: 'structure', + icon: 'iconjiegou' + }, + { + name: 'Outline', + value: 'outline', + icon: 'iconfuhao-dagangshu' + }, + { + name: 'Setting', + value: 'setting', + icon: 'iconshezhi' + } +] + +// 下载类型列表 +export const downTypeList = [ + { + name: '思绪 file', + type: 'smm', + icon: 'iconwenjian', + desc: + 'SimpleMindMap private format, can be used for re import, and the client can directly edit it' + }, + { + name: 'Image', + type: 'png', + icon: 'iconPNG', + desc: 'Common image formats, suitable for viewing and sharing' + }, + { + name: 'SVG', + type: 'svg', + icon: 'iconSVG', + desc: 'Scalable Vector Graphics' + }, + { + name: 'PDF', + type: 'pdf', + icon: 'iconpdf', + desc: 'Suitable for viewing, browsing, and printing' + }, + { + name: 'Markdown', + type: 'md', + icon: 'iconmarkdown', + desc: 'MD text format, easy for other software to open' + }, + { + name: 'XMind', + type: 'xmind', + icon: 'iconxmind', + desc: 'XMind software file' + }, + { + name: 'Txt', + type: 'txt', + icon: 'iconTXT', + desc: 'Plain text file' + }, + { + name: 'JSON', + type: 'json', + icon: 'iconjson', + desc: 'Popular data exchange format that can be used for re importing' + } +] + +// 背景渐变方向 +export const linearGradientDirList = [ + { + name: 'Left to right', + value: '1', + start: [0, 0], + end: [1, 0] + }, + { + name: 'Right to left', + value: '2', + start: [1, 0], + end: [0, 0] + }, + { + name: 'Top to bottom', + value: '3', + start: [0, 0], + end: [0, 1] + }, + { + name: 'Bottom to top', + value: '4', + start: [0, 1], + end: [0, 0] + }, + { + name: 'Left top to right bottom', + value: '5', + start: [0, 0], + end: [1, 1] + }, + { + name: 'Left bottom to right top', + value: '6', + start: [0, 1], + end: [1, 0] + }, + { + name: 'Right top to left bottom', + value: '7', + start: [1, 0], + end: [0, 1] + }, + { + name: 'Right bottom to left top', + value: '8', + start: [1, 1], + end: [0, 0] + } +] + +// 文本对齐方式 +export const alignList = [ + { + name: 'Align left', + value: 'left' + }, + { + name: 'Align center', + value: 'center' + }, + { + name: 'Align right', + value: 'right' + } +] + +// 结构列表 +export const layoutGroupList = [ + { + name: 'Logical structure', + list: ['logicalStructure', 'logicalStructureLeft'] + }, + { + name: 'Mind map', + list: ['mindMap'] + }, + { + name: 'Organization structure', + list: ['organizationStructure'] + }, + { + name: 'Catalog organization', + list: ['catalogOrganization'] + }, + { + name: 'Timeline', + list: ['timeline', 'timeline2', 'verticalTimeline'] + }, + { + name: 'Fishbone', + list: ['fishbone'] + } +] + +export const iconNameMap = { + back: 'Back', + forward: 'Forward', + painter: 'Format Painter', + image: 'Insert Image', + icon: 'Insert Icon', + link: 'Insert Hyperlink', + note: 'Insert Note', + tag: 'Insert Tag', + summary: 'Insert Summary', + associativeLine: 'Add Connector Line', + formula: 'Insert Math Formula', + // "attachment": "Insert Attachment", + outerFrame: 'Add Border Frame', + annotation: 'Add Annotation', + ai: 'AI Generate' +} \ No newline at end of file diff --git a/plugin/src/config/icon.js b/plugin/src/config/icon.js new file mode 100644 index 0000000..3d27cd8 --- /dev/null +++ b/plugin/src/config/icon.js @@ -0,0 +1,191 @@ +const iconList = [ + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAHjUExURUxpcf///////////v///////////////////////f/////98//////////////////////////////////////////////////////poP/haf/////////////1yf/65f/mgv/////lif/87v/xrv/////////ha//10//////////////xt//srf/53v/uv//////////////////9+P/89P/nkv/9+P/sn//////ia//bff/TVP/hef/YY//////2zf/64//lc//1wf/RXf/mk//////87f/wjv/////kef/rjP/FOf/qhf/wm//31//IRf///P/////53f/xjP/VVf/xjP/98P/////iZv/gaP/aXf/STf/ZWv/UUP/dY//YWf/bXv/PR//eZP/NQ//VU//ORf/CLP/WVP/HN//dYv/aXP/IOf/cYP/XVv/VUv/JO//cYf/DL//ha//EMf/fZ//FM//MQP/LP//XV//RS//jbv/hav+/Jv/KPf/ibP/AKf/UUf/RSv/fZv/GNf+9Iv/mdf/kcf/QSf/TTv/pev/nd//qff/XWP/oeP/eZv/lc//sgf/QSP/wiP/rf//tg//lcv/YWv/LPv/RTP/MQv/vhf/KPv/GNv/xiv/hZP/bWXLIdi8AAABYdFJOUwBTx+bw/gL79t7pzQ82ghziYq9bCUMGfCPB8WiLcb/ExCvVy8jTltzAvjFMwsHCvxY7qMP008LYzM34zPLf5qLO3c3I18ye5vG2693v7NvU4PqR1fz6+bAfoaxJAAAKpUlEQVR42u2ciVsTyRLACQkk4U4EOYIBEsAgN4gIAuqirq7uuuf7GhEF5PBCDkUu5RBWEBC5PEGff+orOozVnZ6z5YXve29/X31Wdc/UdCXTVQ3NjDH/8H9CUrXP5/GUJh1+JMnFdhImruhS9aGGcqSIcMTa4g8rlKwSItBQcDixeFxEBafvMGI5RjTIjX4sKUSTlGjHYiM6eKIbS6qD6ODKimowJUSX2qjWF8KSEKyoCCYQliPRiyXdThB3659fgD9b3QSxpx9KJuX968s+l/MOI6NSXUwsW1tftr6AbAFBZg6nRimYGuYeXd5iuMzc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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAHIUExURUxpcf/////////28//+/v/////////+/v/////////////////////////////////////y6//6+P////9zYv+Off/MsP////+ue/+9nf////+2iP/Zwf/////h3P////////////////////+sef+1qP+Eb/+ZiP/q5f+idf+icv////9SQP9LO//AuP9nVf+lkf+Tav+Xaf+rfv////9kSv////////////////////+teP93U/9VQP+BWv9KOf/d1f////9+V//Lxf95WP9oT/9rTP////9fRv/////m2P/Py//Uzv/NxP+lc/////9vTv9fRv9sTf9aQ/9XQf9eRf9yUP92Uv9VQP90Uf9nSv94U/+IXv9cRP9kSf9hR/+dbf+GXP+DW/+fb/+KX/+NYv+jcf96VP9rTP+LYP9PPP9jSP9iR/9pS/9UP/9SPv+Zav98Vf9uTv+SZf+aa/9wT/+QZP9oSv+AWP99Vv9NO/+mdP9YQv93Uv+TZv9/V/+UZ/+WaP9qTP+CWv+BWf+Xaf+PY/9LOv+rd/95U/9QPf91Uf+pdv9mSf9IOP9KOf+lc/+odf+gb/9dRP+VaP+ndf+hcP9HN4T4UUwAAABPdFJOUwAJl+/8t+b3/kjAGqLxhi0D5PXSxMDB3t2/OMjFedzJjk8NYOvEwsDh1OJZ3uXLycDS8s0S4SLXJa4R+Orw5PjWcfTQ1tj0Z/ds0dPSzfX63bq2AAAJg0lEQVR42u3bh1sUyRIA8F42zOa8LEjOIFFABMQDz3S5JCkGzBEQI8/w9M7TU0596pn/3Ve2MtW9PTtJwvu+x8/66Jqaqd12pmeB3Q+2adOmTZv+Vw3WVUXDmXzMpwV2hP3RqlCE2RQJVUX9NTsCmi+Wz4SjVXWD7FtEGqIBUAT88QSzkIj7jTqjDRHmiqc9HIRi8vEtrKgt8TwUEwy3e5yflJIYmMtX1TMD9VV5MBcriTicig+sxeIRpTEeA2s+B9PxxDWwR5MfNVJiuzFu82Jt2QH2xRqosSEG9u3Ywqwla4PgSHiAcQNhcCRYm7RcLWFwStvN0G4NnApHLC5RAFyIejxRcCFgeqlCGihSlaUVZWWNO3c2lvVVlFemwEBNDSC1s7yi70tnmXGnFnIyl5/Ky/4u0FhRmQZL6cqKxsLOsvKf7M+mzgeSdCnNRLKzotIHJnyVFTuNO8tK0wWH1hVZL5p8WGnjf4orq9SgCK2yzKSxsdQnH224biIB+QKVfXjDfXjzgXtD2zxvrARDlY10jGF/mXyxAhGm8GSk+Zb/21pfChSpPhuN5RoIMh5WqAQE3r5/JBf+uYCBiey3UihQ+hvtNenv84KgRLmRpLm0XbCpIg2CdIXdvjZpNiEm6Q8ASW29gD5e+IiBCeWKj/So0v/Bun9rCkigX7lINJe3n318+xHjrRV8VOoj1G/Rp16oRBB03q1nz546ewrjrAk6ZqtX79NZ9/M+nS/BiB9I3ymH2tKA0m1O+/qA+I1Xb6lR361TtzhMCusYfdL/wX5/qeEaDlOxtfeWc/iopS7aeltBF9ZXDNW0tmsu9KZSvW762jTQrayaKJXKn3DXnlzDeEKoZrjd1kZ1J/3loIsybthHd1Lv+/d/vv/TFjwQQ6k56u/10g01zD5rEE7Mw4cP3z98z2GiwCKGSe60Xzg1DQX3dbr39y9u/n4T43fnnPb3puW7u99Ht/XNdVdK16kfJ9MOum3/WnfbQNcufVtqfXr+6XmMpyKqFcuJm/5W6RtUhpbv+Q1ASziDSyZIV+nyBqDrFOxnIbqXLp/DfxjnRFSjvBg3/ZfTwvenA3o+du7c8XPHOUw4TDCkEVEuH+eufwxWHGC1tGSO604fP41hK+cjwsFdPy2aWjak5y2nN0QLrBhiGVq/Z3Snz5zGoFGsIxyMjnHXv024nfJ6/t0ZyeMzjzFoNKlT7qL/O/1uyrMATebx478e/8VhgsFHTq3TSPvc9euTgQCL6fn3dyz9cecPDJOai/7vYUWMBfUcD9wId+hVj2l0Zu4Wdf3udYy7Ftz105nRhDUzcn1DjNCaEe+mixuCFnBeeJ3Z+0xx8dlFDGWb6hJ3/XuF1xm/nueePTv27BiHCYY6yqhOufP+HKzwCz9b9Tx4cOzBMYwHiHKrGtXd9fcIP11V6XnTYcmDww8w1G2qU06c9zfBiirhR+Bqanxx+AWHSeE2hlynmrv+auGH4ISe+0ZeHHlxhMOEwwRDGhHlynHO+0d8wm+4yRisyB5x49CRQxhH3MrCilhSfAuihz8oflEodeP9bvp7pDciamnRHNoAtGRq5XeKRpYOLWEcwlhSUF2pUe64f0R+v8ij0cve0rqjlzzNI//iP3bwq6WDSxgHDZkd47x/rOBtvd2g23tDdfDGQYziNUwQbTvq3wu63eyzSJDup4mJiRsTNzhMFFjEMMmd9tO9FIwUvr/o3T+xrvZ7lXcYG0CXm5i4NHEJg4+I52Y1jnJn/TnpjSuunu6n1kePLj26hMFHnbwt1RH1ICf9E610L9UbfHLQfOXRlUccJhh8FGucWqeag/5mo08PElRM7b995TbGFYlcM99nv39/CnQJw88OWo7ePopx2xQdo27b728Bnd/4o6/09qOql0dfYhx1wrp/e7rIx181VG96yfFm/OKWdX8T6GqKfSro23fC1MsTLzHMcnv9+3zqiVFPza8n1sWv6omhU0Oa50/Mn8CYXxl1uMHRPhoFdvqbQTkxxC+u4YX5hUJYmscwrlFOo3m/uHr9rNCgBrpf5k8uLJxcOImx0kzb8qjs4xas+hd+AZ02yBRxILnxk7rxk+MYSq7ut96mPAckzlSegDDZfUYPqDwwMjnOpL5PA13AwwyEgFT/ML6GfqhWVq+iBEjT9Pj0uC14IIeJWDPrbwJSwozV54Hkpi3pk8CQcgs5IPl6VsSWIOh83e+muXfT77hp2sagOqJtyjGK9Hf7QBfcwoqKA/Fun519N/sOg4+oWE7U/Wptu9f0TiKejLSIZ43Rk7ggLd6Mh5lIaEC6pidnJzFmMdQR8RzRNh2D1D6MLiBagplqB0HTLD0Bopw43D/bBIJ2ZiEOgp7JVdYDNhYMSfpBkJucvD95H2OSU3M+IsppVHtyIPAnmaXhPAia76+iZhDkh5kNiRiQYPb+qskGgcQSzJY6sUnLTk1N3Z+6z2HCYYLBR7HG0XEc7ctqQIJ1zKYDIPBlp2ybmZrBMN6X9YHgALOtCgTB5hnEnwS/6GhbqRntaw6CoIo5UAsinM23agZRLXMkCqLczOLizOKMY9iEgWMORFHmTNIPopZFHT44Bo3F0fEtoLzAOOIJg6hpZvEqf2wcrmIsOjDVBKKwhxF3s9mzS54MH1X6Psp37XE9F+Lxg6i646orHdUg8nuYK54hEKW28wd/fvU5hjLqcAPp+zpSIBryMJeS8mzS3fjghJ6QKPu60/Jcksy1ZBQkuecO5UASTbJvkCwBSdeuuc+ezz3H4COiHL8gvb6rCyQlSfZtqoIFy3jOtoKlG6xi36xOA5G3e+4eN3dvDoOPSM9p7PaCSKtjjln/MU3LKH9CjiaFpNpoi9kfybgXyYDk5857y/dEuLm8LNc6fwZJJsJWSb0fCi7Vsj4BPiI5x0sk8dczC+5vqmDL6LKJ0ZYgSGqTbDX96APJWMfr5dcYy5IvtY4xkPh+ZKssFANJOvva2HI2DZJYiK26xA6QdXXyJ3/1+hWHyWedXSDbkWBroD4KMm/26yQw+IiyXpBF69naaNCUk/NKopwWrYGtmcGMwclBn159wnilnJbMIFtDnhIosKfj01cde6BAiYetrfYYyLTc6Cc0mtNAFmtna26gBgq0Zjs7s61QoGaArYNkbdDeX9auj1AALARCbN0MR8FUdJitp7qAyWmpY+usPwpFRPvZ+gvlwUA+xDaEJ+6DAr64h22URBgk4QTbSCF/EL4K+kNsow3Eh2pisZqh+ADbtOn/2n8BLAAd61P3kcAAAAAASUVORK5CYII=', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAJ8UExURUxpcf/////////////+/v////////////////////////+Off/////////////////////g2//59//////////////19P/////////////7+/////////////+ufP/Cn/+1qP/////////Nsv////////////+2if9vYf+Yif////////////////////////+tef+ref/YwP/Zy/+AWf9LO//i1v9nVf+Db/9uUf////+0mv////////////94aP+ijf+tfv/28v+icv////9VQP9RP//Nx//y6v9KOf9lSv/////17v+odf////////////+8tf9+V/9VQ/+AX//r5v/u6/+Sav9rTP/p5P+VaP+Zbf+uef/EvP/Bu/9TPv+Ob/91Uf+aa/+pf//Ep/////9rTP9nSv9kSf9pS/90Uf94U/9VQP9cRP92Uv9XQf+XaP9gRv9ZQv9wT/9fRv+FXP9eRf+TZv+CWv9UP/9sTf9SPv9QPf+dbf9yUP+Zav96VP9hR/9mSf+fb/9NO/+mc/+UZ/9uTv9aQ/93Uv+QZP9bQ/9xT/+NYv9vTv+kcv+AWP98Vf+EW/+icf9PPP+HXv9zUP9jSP9LOv+KYP+IXv+pdv9iR/9dRf9JOP+aa/99Vv+PY/+MYf+odf9YQf+hcP+RZf+seP9iSP+LYP9+V/9/V/+DWv+JX/+OYv9HN/+cbP9dRP+BWf+ebv+dbv9yT/98Vv+slv+Xd//p4v/Kuf/39P/BsP/8+/+znf/w7P/Ux//az//+/v+ghP+UgP+5pf+jjf/h2P+wjP96Yv+HZ/+Kc/+Tdv+ZcP+FcP9vVf+Pa/+Caf+Wef9zXfJWj4cAAABldFJOUwDlChn8t0n3/vIBwL0hB+qV2/Nfopvw14jD+c4tyNq/xEQpwY7TEMjDwFY1BOFPruzixM3l5dLJwdt4wBKC3cLA0ezjpfDg0OL44mnl9zx7ccr02dDh6M/04PDX+MrM+MXx9cjeYa53QQAAC4FJREFUeNrt24lbFFcSAPDHMMPMMNyXMJwKwyWgYBAkiuKFVzxiNB65s6Wg4C2reES8omuiMR7gATmMGzSJhphoAPHWaO7d/Ye27Mau97qnZ/ph0P2+5ffVR1VXTzUt85oeZj7ZkCFDhgz5XxVZUpWY4iuOtjtDfCmOhHlhocyi0LB5CY4UX4jTHl3sS0msKolkTyM0PiEEDKIdE0ayIEZOcESDQUhCfCgbEFt8hAvMVCePDGcmwkcmV4MZV0S8Tf7ZiXFDYMVVucyP3KpiCMwdEyn3/MQ4ITh3cqhhMNkNwTljcNCiqAlOQPJHDY2xPDghilkydxhYFx1Pg/HRYN2wuSy4ohwXSImIZIrICJDiyikKulpSQJZzPkPznSArJcjKGRkCAzA1KmoqDEDISBbAcCcYzCnLzMsoHf3aa6MzavIyx8wAP9LTwY8ZYzLzajIeT5Zm5GWWzQED53BmKsxwLmMzM77UGZ1XFgdBxZXljdZPZmSONZxNGDNR4tQdMDvjyzNnvjyjHgoLBRav5ZXZIQB7Wd5LytwZ/XxGdhwInCUm68UpHjF79BlzpWVeMOEtKw0wODrbLp6N33UTGiI+QaX7zgVUWgZ+lZWeO7fv3D4Ms8Gx4ioOZQa2VOB4M/cFVzMDDGbUWBjM9AIn1cb0YoTVUnPkyL4j+zCEjITeS9mgk/2Ssh8FnK8RVk6M4UICzuSMY0cUx44cw1Br2ub6eV7gOFOU1I37gsxnTAZOGBOMDwEyZ8oxdP7YeQwsqNbDVg131GifmnuOBZ+fMgdIyHjGSwQyY8qe83vOK7DAEDISenTU4mJQPbQyP2UGkETGSXNxz9GUPXuu7LmCsScAeszfokERXQ2qXmvzUyaDxp7GiAPIu1d27Ph+x/cYOzRXdlzB4PtU3/a5Abl90O+2xfl3gTi4WxKQ7G8l9UI6ILo73bc6mQ2EblIR1Fz6zreffIvxiQH1hd5DHEpRot+dI1bn31kKmghtxVDPu/w9Sddxyl1cTC99u63PLveCJo2pEqiVuU7x3rr3MNYR6um3fwKUmgqaHon5TNAkMEUu3SCTlu3fv27/OkvwgRif9IHOQ4n5ZUn0CzNXfR0Nmhf3y3oIOr1S4y+CJl53Xcct+7usHtC5JTW+LE68usfb6bL+p7Ru0LkhN0+Xt328+Cwt/4es3+6A6M5vcgdYDppC4bXDos8ufXYJ4zOFWotZxfVvgE63xLySFwmvJHy0fD+06tKHlzCwuAU616XmES1hHy4Zuke+euHzC59jXFAy0mo/GWF9E3TuSs1j8ao26hrP3Ze8p05dOHUB45SAesb9P4JO7+cW54mXuz/Nppfg33xz+pvTCiwUWGAIGVF933Bhy8yrmV6ez2Y5tGROnz5x+oQAGwF7tw0XttV5qmnR5LBRWl2wWdaJXhDd+XOztEna9CiWSuv3Y83mjzdjUOb6SNt3F3S6pebVTCs4lVVr9QtfC7Z8vQWDsp/+dcOFbXme8gv0riULoZPZsuW7Ld8psMBQMtL3tfyT4cK2PE+ZTiaEubX65Y+C+uqjrzCebJ3oA1Hvd5bnycvauJu5tBofePGrixiUVX77mB4YLmy5+YuKj+i3HnPST+ZTU1c/vYqh7/YYlsyPT/wZbJ7QT8bJomnNHJVy9Wg3mLprZf4qxtGjtGaiWTGdzC45P4OpWxKHoZMp5m7ar6xW7Fq9C0PNKtoWXAMzvT8Hnaf+K9xt26HVbyk7+RNChm3y72tP3ADRjeDz5C3uhWeiVk86eHD1wdUYBxHVwXroVxB0r5aZp9tBIqvS6qw1goNrDmLotylzPfEav/Or1HyWNljFCrU6do1g1ZpVGIaaUP8+8Hrk5mO5F8EjtNr+9iqiDuMXYr6vBzg3L0rNv23XJkewcDddTqtknFx1EkPJwj3qgdw8XUzucMZSaAXvPLnzJMZOPmto27DvJpDbkvO0flMYYzm0aHaa+WHnDxhm/V1A+n6WnKclkyO+zznuA87GDzZifGDBL0DuS86PE9/ztNGt0rNxQO6CpnuV5KyHbpM28Q//sYf7bTy8EeNwQPSYG6C5Jzs/Vve23nzueXrf6PD7hzFMe5joyu6RneeepfnssVAX/bXS3Nz8frM6gIUBNjH09W3tBvlIdp7+TnGF6t9fTFrSPADalX1NdnJJkuEdxnjQeJqbVzSvwFAzwhS417zzDqh+wn+z3LyHf+PK8KbeohXy/gWqvt9lJ5sX8deS8ZODyvoV9SsUWGCIWSX2V9wD1XXqWZyv9PfpQRo1Fy+pl3UNFDf/kB1cstjwNrC4hKFgZf1KjHqFWvvPSH3cdVDc69+2Pl8Amgj/H33FzVpptHvlbgyhRdQr+xY1LM7PiuNvBSQ8lfpZuxXKMH4JrhtQ3yNqWJzPAk1quMmngvZxdQHtrtuNQXV9H6AbXN/a/Di76eeC6aCprZPyCFB3fZ2sWtCkM9FwIJWtda11GK1aVinbSNx3D9AvrTwr85XGD5uIg1/DZ1vPKjrPdmKoubWzFYO28Qs+rLX1Gk70qDXuVx8XfJ5fvQ6mF+kEzZjWlrNnW862YNAB1W01d7Z0Yqjb1wF6/6Aewn6w+c4xoHFGMoNkIJ71LS3rW9ZjUEZUc24BPKCeMGc+7wGSzIxsxaDxjlvfjw5ophtumzzGfH6cFzTFNuZHGJDYzvWb1m9SYBGobunre6Tvo4AznbFmH/eTRCBZTZuaNlnxH7jfpOAfjxuB5rOAJDL/bNVAPE3W/HKzTv3mCBPV5jxAqm3MxFwXaOwVXepoe1P7Y5i0bQw1d7V3PbjXpW53NXXhJtVNZvMVdtC45jJTyUCSZjU2tje2Y6gZv1NXY1cjRheWWv/3doQNvoeo1s/PSgp4JZEoH5DYaY1m8KgYWMibFgvEF8UCSHMCeb39UOMhjEYMQ0ZKrcCCUN8wh/E6EGcaC6gQOFmHDijHxnQA45AEmhHrLOAUsiCSgTMJDzJQ+M0xdM1JYGHBkHAHcDwHDmw4sAHjAPJXKxlRTdk44wGOI5wFlVsNnMoNT3yx4QsMY034fZS5fiVwqnOZBWluIK58PAiHvpHZNvX0+/JdQNxpzJISfsibv3bt2i/WqofDQoEFhpKFnop6iPble4G4SphFs4Fjn7jWsoa1DRj+9020A2c2s2wecFwTG5DyTfCLhrb1PcqciS7gzGMScoBX2fDUKoGXw2SETwWep2Hr1oatDdJwCAOzB3hTw5mUIgfwCrZq8OAYlM3R4wuA5yhikmwpwMt6c+s25diYtmFslfBmFvBSbEyaLQJ4tdOEk1GzkbaP6mm1wIuwsQGwOYAXO33bgEyPBZ7DxgYkahTwFi9UDr5923YMQ9bgBtL2LVwMvFFRbICKxLOJq8CDE/qGxLCvIk48lyI2YEVTQeDZLskDgqlF7CmEJ4JgwbTjj20/vh1DzQiT1kNaf9oCECSGs6dT5dIt4+OW6Zauq4o9tUIn8JIqju9VHN97HEPJSKspVyQBz1nILJH7zzQFM5VviPiTQkJvZoHEf5KREOkDQW353ra9PNxsaxN75bUg8EUyCRK//mByRZt2AkpGYl0xGSR+1ckpigGBq2BmWwAzC1wgiClif6XZdhDELuxo68BoE6i9hbEgsM9mf7EwNwjiJnb41zYxDgTuMPaXSxsGojfKO/wofwNEw9LYILAlgCgpv8MgPwlECTY2OOLdIFpQfvlyx+UOBRaXyxeAyB3PBs0In/8fDp4IhvHH4hvBBlFUDOjUTr/cb3ot6MREscFV6AaR1zPzMprp8YLIXcgGXWQ66CzNLy/PXwo66ZHsGSjKcUn8z9pBFxYCQYSEsWcmNwECSshlz1JJNJiKLmHP2PgEMJEwnj17w6vBj+rh7LmwJdtBx55sY89LWgQIItLY8xTmcEE/lyOMPW+RE0alut2poyZEsiFD/q/9Fyjlc0zUEVOfAAAAAElFTkSuQmCC', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAIZUExURUxpcf/+/v/ipP/YmP/mrf/////Tj//////U1P/////////////////////cnv/////////////////////////V1f/////qtP/////////////////////////Nh/////////////51bP/49/9kS//////////////28/+Tef/Kxf+/tv////////////////+di/1LR//c1//9/P/////////v6v/g3/5aSP1qXv+Uh/94U/+MbP/////ggP+6qf+kJ//Txv9rT//////27v1fVf1/fv/p5P9mSf/Wz//Kvv9/W/+pkf/////Umf/vwv+ln/1VT//jj/91Sf1QSf/gg/+lK//z0P+pNv2npP+0Tv/hgv+7Xv/n5f+tn/////xHR/9rSP94Sf5cSP5mSP1PR/5ZSP5kSP9tSP5oSP92Sf9qSP5eSP1NR/9xSf1SSP5iSP90Sf9wSP5bSP9uSf93Sf5YSP5gSP1UR/xMR/1WSP9zSf5fSPxJR/1XSP96Sf1VSPxKR/1LSP1TR/1QSPxLR//AUfxRR/+6SP/FWP/JXv+zPv++Tv+nLP/Wcv/DVf/Rav9ySf+tNf/OZv1JSP+vN/+xO//aeP+1QP/dff/HW/1ISP/LYf+8S/1gSP/cev/Ub//Ydf1kSP/fgP+lKf/Tbf+jJv+oLv+3Q/+4Rf+rMv1iSP1jSP+qMP/QaP97Sf/MY/1mSP97Sk/w00wAAABfdFJOUwD1wMDA+sD91mqNzwELwRIv6yNWxtZywRirBrm0e8DY5P7C9OJkRcDvwM7IOpyj3b/y2PxMgufe9Mm/08Jf8cTxz9ko6tC/4u3Ty8XAlMTEwtjM7urf38vPw8P4wNXCnQZGzwAACNZJREFUeNrtnIlTU1cUh5NISiFAgNDUQCgQlrBvgqyK4L61WrduM9eKlKogUWgRFZHNsNgKQlsXiK1VUUSQ/oU997683AtvxzSX6fC9l5cZZ8Qv55x732+G+ExbbPE/xb6r1FtmzrS5qxNNuohLjY//b1TyvNEoRGa12r+yPS/muCsl04oAkHelV9nDqpKYhtaSFBNnkiE+Lz0tCUmI9jq3h80l14okpK3/uKl5sbZopIS1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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAHIUExURUxpcf/////////////////////////////////////39P/////9/f/////r4f/////////////////////////j2/////////////////////////++m//17v////////+ufP96UP////////////+Fff9UTv99Tf9uZ//5+P+Da/95Vv+ubf/////////w5/////////+NTf/8+/////+kdv+gmf+JUP/x7f/p5/////////+urP/Kxv9ZUf/U0//h0f+VTf99Xf+Ujv+RXP+8tv+JVf+yh/9nVf+qo/+TYf+HTf9RS/9dWv+aTf/Yxf9lTP/TvP+iT/////////9STP+fTf9eTP/Evf+qXP+1cP////+BTf99Tf96Tf9jTP+HTf9bTP9dTP9vTP9xTP9gTP+FTf+CTf94TP9pTP91Tf9ZTP9/Tf9zTP9sTP9mTP9UTP+ETf97TP92TP93TP9YTP9SS/+KTf9uTP+DTf9nTP9rTP+QTf9+Tf9WTP+MTf9PS/9fTP9iTP9XTP+ITf+YTf9oTP9NS/9yTP+VTf+TTf+STf9+TP9QTP+NTf+bTf+cTf+PTf+UTf+gTf+hTf+eTf9oTf+DTFctR9QAAABbdFJOUwA40MPtHhj78ffwUf1j3j4m5YBDAtoSm8pKWXTB6i/cwOSKBWrA5PHG9sTVxNYB5Aq58vqrwcDi6eOSscTO29XU+My/zcfWv9XCyfn3zvvN78ntoqfw/ffKzsK5XEUEAAAJtklEQVR42u2c+V/TShDApbS0pZS2QKW0XOU+XjnkvkEORUHf8+m7FgVUUBAFRU4FERAQRFAE/t03pIbZ7aZJk5bwi9/PfNzJZGd3HLubzSbxyi9+oTv5cb685vRmu+PqZUeSZqu2kp+YW2z5lxlKQQ5hcNkrLisWUzzh8DgvJxabkUhgTL2MWDLMRBKzV/9YHFYSBrND71gSjCQsRpPOwdwnMrToG0sqkSVD1wkmQCjcmf/9l+mmLYE0HYPxEiT53x8C/2YRRMcRVWHAbjvv/fjJvU60GvSbiW3Ya1YwlqMfR0c/7iWi3aZbMFRifjs+Pjo+OgOK36jUXEJikv86pvgrWf/UeOjE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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAHXUExURUxpcf///////////////////////////v////////////////////////////////H882zZhP///////////////////////7ruxPb99////////////////+/87+f66IThk/z//P///////////+v77dv23/r++v///////////////////3Xeh4/jn/n9+XbbjmXXf////////////////////13VeMX1w9P02GLWe9T5z////////////2TZeaLosYLre4Tqfnbhf+P74YPrev///////////////////6/rvfP89Xbje4bphMvzzlvUeKnzn5rrnI7rjP///////2HXeKDylNr52JjyiZ/pqLT1qWbaeJDyfWjbef///3TjeXTjearpuIXserDtt8vx1KzvrY7ye////3Piet/35L31trfxt3HgfHrmev///27fePn++f///1zUeFrTeF/WeF7VeF3VeGbbeGPYeGTZeHbkeWHXeHPieWDXeG3eeXTjeWrceFrTd2vdeW7feX/peojuelnSd3nleV3Vd4HqemjbeIPrenrmeYXsenDgeXLheYDpenvmeX7oeo7xe3zneYfteorveonueozweovweozwe4vwe0b7susAAABydFJOUwAUdd7vMfr9/cwECQIq/tfqzQ4lBvVWtMbxT8ca5OXew/qRhcHj1vdm6LyWH8rA9cXU6zfSq0XxxdHeyqWLSOjA6dvV1/NsnmJ62sPt5NDK6r/AxzuC9cPQyr+/+OHvPPrywvrBzr/2PevawcHe+H326XTB9nsAAAi4SURBVHja7Zr3V1NLFIUDSAlNEZCqIiBWEBQLYkVRmg0Uxd57eWtyk6D0oNyAIGAwqPjHvjMtd2YoaWZY7627E39Al1kf+5yZfe4Bhy1btmzZsmXLli1b/1eVt12s3tjhPPzhUPY6k2RvKUMhpSRnrSfLkY1I0tYt64ZSUImWaV/B+rAkVaMVtHddSpW6FVGpNOvgzZZCtIpOaj9FVWhV5ZbqZdlchNbQwSSdLPnKiS651bxT/LpSI8upDRLK9r5fCwsLfeetv0nbr40lOUNiOfZiAcMsvGjWb03WCQkl/drS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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAABmUExURUxpcfJkZP/////4+P////JmZvJkZP/5+f////////////////FWVv/+/v////NnZ/////////////////////vHx/vFxfzf3/////////JZWf////////aRkf////aQkP////FWVqlNL4sAAAAgdFJOUwDN2PUUzc721BZl/vX3A8vBsCvijs3M3FBA4O0ev4u/WuzFeQAAA3FJREFUeNrt3FtvozAQhuG2gYYAIZzahpwK//9Pbq8yOIN2on09irbKXCYd66kDRkj+/PKsZ/2yqoa+7rbHrMlP8Qc/5U123Hb1ZajuoeTdeK2mjUtpGxm7y01O+zbOq+iriFPeF8Hgb8a/ut+ON1UnsSxJfTv2dv+3v8+LUVW2iWPZZHrsIrcstoZbRGNZbA23iMa2aA23WBptsTXcYmv2YjE00KI16p5qg3v6a1ceztslDbdsz4dy9xV80t6sR8Fa91lOP/W+0hpuWb1PP1V+BqtfFV4wymJoiEVr8mBiOmUxNMSiNd18agZlMTTMojXDrOWiLIaGWbSmn/XUch+JZVnDLaKRe6qeNckls5smQ4MtUju5aGZdsqSUk6XBFqlSlppZ2/H66WEyNdQidbh+e5z1Sdt5sjXQInWWQWeNjcxXeq+GW1K5OprlBXj9ep+GW17Xy0vwaSQabhmDl6KGaLilCbrbAmiwpWjD/n4EGmKRh4FUVQMNtNSVesXKgAZZsmRhEKABFmMYoIEWruGWf9eoobDFQ6PbgYVruIVrHCxAAywOGmBx0ACLgwZY4muAJb6GWriGWvw13MI13MI1wOKq4RauARZXDbdwDbA4aIDFQeNskUru06zvfj/y1wAL0qRLmiVLCixIgy1cwy3+Gm7hGm7hGm7hGmrx13AL13AL1wCLq4ZbOAY8qP0s/PHILY/TbEwL/6X4vPC54fPCNf4WruEWruEWruGvK0Djb0lToIltWa+BJrZlHIEmugVoHCxA42ABGgcL0DhYuIZbgMbTwjXcYmtSoAEWoMEWf422vNsWoIltyTKgiW1JEqzhFhkYaKJbgMbBAjQOFqBxsCCNbVndZ0EaJwvXcAvWOFi4hlucNAmwxNZUNbAwTaG2U/bAgufmEva3BbAwjd6C2xAL1zRB7hNYoEZv286ZhWvy5a3+zGJr7K3+0viNLLbGDkHoeAi3aI0dD9HBGdvCNTo4Y0SKsEVrrEiRDltZFqixw1a9dHyUhiWapvxYfiAMo9IYFqLRlnFQ0UXRGBao0ZauUqFO0RgWptGWMVdx10BjWIhGW7LKDgJTi2jsILAdkeYW0dgRaTs8Lhaq4VF2sXAND/mLhWv48Qdi4Rp+MIRYuEZb/oPjOx5/sMnjj3wxOcPF/zCcfqhenvWs31V/AGNvge0RW7yuAAAAAElFTkSuQmCC', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADPUExURUxpcf9eXv9dXf9cXP9cXP9mZv////////////////9sbP////92dv/g4P+Cgv////////+5uf/////////ExP////////9iYv/6+v/U1P+srP/////z8//////////r6/////////////////////////////////////+kpP9dXf/X1//Nzf////+Wlv/Dw/////////////////////////////////9cXP+Xl/+IiP9lZf9xcf+/v//29v/Q0P+Skv+urv/m5v/b2//u7uMCeNAAAAA3dFJOUwDl7f750uwD+sTL/sXbwRrUxngJymjn1/jTwoTt8UDm4DBytphuSCKrwPDVz1K/yqU8X93yOKyG2OuRAAAFUElEQVR42tWcaXcaOwyGM/uwZiAFEkhbdkjSpG3SxGLP9v9/0+3lQK2ZMxDDO4zJ8x3Oe8ayJEuyT/bHG/R73WEnEzRd33ebQaYz7Pb6A+8kZbzH8jDwRSx+MCw/pqao1e78ER/wp9NuHV7J764rFHG7vw+pZNB4EDvx0BgcyE7uM2IPMvfJ289ZpSn2pFk5S1ZKuyoAqu3k5HhlV4C45YQW61sgEiD4doJz+kts4rxQustnnZph2rZp1Jxs/q5UOBeb+HWKrlDvq4ilcJU3LIrBMvJXBRHL154HfZbY3XxZzxu0FSNfv4zd58DH6bsxa1PK2qSAnS3FrJjb33eJGjkR5aZ4TcpcF29ElFzDS2iJfmRpR7I/ElmqVlVE+OLQHjhfRIRqa2fnEt1FFzXak9pFdFft6HJu/cgGKlq0N1YxsrX82120VHJhq6ubBGHWI39YUddSFiG+OwTjfBchysrfRYT4aVICmD9FiIqiveQEww9bC2I5fmilbpX2ka+yRPhS+Qp7qhXa0wWDEsQohHZ460O/Ww05F5MSxQy5nOoHvtjLhHyuTQljh/xxZnucaghGyabEsUuC0diaM+R2+S74t8n1txiMy+3FpoNgc7txT5UMpmDSgTALKmbT4/7FIHWs6dQidQzub3obFol5GN8hZSazuRDz2YSUcXzmbeIXip9JiqTM+F0seR+TMkV+gokNAzw2WqTKdC5WzKfq68qjZkxY8AJmMCYps5A/W5AyJjObwNuWw+QcUmYqGFNSxsltyW3OmIupkzpjwRiTOnXmbKI1ijbLd01SZyQYI1LHZHlxO/JhqnwnpSGG76jq2aZM88JKR4x1sSEH9ViNrEbpiKEaq7TxDXXPYjWlJYZY/L5nYliEdNIT47B4yeq77GxP6YkhVhUYxOV32TTFZONyvgdZf6E0xdCNrKX/6wcwH5OqGO5r1n2GrqyRXacr5lpW2rorMTIslShdMVSSAWp1hmTmm7IYbsKtSIy8tNMWY19GomWH5Q4pi+GZRGcZl2SPL5++mLzsJP4fnx7FP4z0xRjy14+hfLNA6YuhQij7HIo1VzrEXIk1w79iAmkyuBjEaIK/9utLk8HFIEbjeyx9OLd0iLHOWRrRZ/aLi4EsuM9KDyUdYnh46rGQfadHzB0L3E9sM+FioO30xCJTVo+YrIxO7GDg6BHjyCMC83k1PWJqzOs1mc/DxUBer8lyTlOPGJNlnjIa2HrE2DIeHJWYo1qmozJgdGs/C8YzuLUxpxetdoJODw0H9C61vBMYDtBASWNeecUC5RBNIYhmYsWMCEwhgORqzWi+7ByMiAhMrpC0c83k+eXleUJLoLQTTMhxeEIOHlVw+FEFO8Th8EMceLzF4cdb8OCPww/+YEkEh5dEwGIRDi8WYWU0HF5GAwuMOLzACJReGaPF6+tCRgOo9Oq5UHiaLsSSxRQKTG4C5XqyXsWKV4ugcj3eyKAX+eMXghoZeItn4rNpjgnU4sGbX9EmO9784m1B6HQAtwWjDVPky0ANU7yVPJnLn84nQCsZaLLDuynaZAfGDzhvYsUbETB+gAxm8JErsWQ2IQIGM5CRFc549vY2k8YLjKxAwzxRgGEefMwpCjbmhA+AccABMHw0joONxuFDgxxsaBAfp+SA45T4oCkHHzTVP4J77MPJ+se29Q+0H/2ov/5LEPqvhxz7xRn9V4r0X7b6jNfQ9F/Q0391Uf+lTv3XXT/zRWD9V6T1Xx7Xf61e/4MD+p9iSPmRCviRCv3Pd+h/2ET/ky/6H8M53meC9D+gpP9pqU/+6Bb6HNkTf47sCXyO7D9QH8Q4CI6JZgAAAABJRU5ErkJggg==', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADnUExURUxpcf/////oyv/PlP///v////+1Wf////+jNP+oP/////+jM/+lNv/////////8+P/Yp//////u2f/etf/////////////05v+jM/////+uTP////////////////////////////////////////+8av/37f+jNP+rRf/////cs//48P////+mOf/EfP/////s1P/iwP////////+sRv+sRv////////+jM//////////06P/Zqv+5Y//dtP/mxv/Kiv/arf+rRf/Ff/+wUf/Sm//w3v/Ac//s1P+lN/+oPf/Mjf/ivjrTDK0AAAA4dFJOUwDs1ML6xMMD7dIa/OTUqfvGeNzKhOBA5vfnyPFoCTBymG46Iki/7PDN3cruX9m/UtnPtPLMy7m4s4t7vQAABbVJREFUeNrdnHlT4koQwBMJJDHcC7uIyqHorrte69kdiKLIoe73/zyv6u3D9KQSnCNhqPf7lypopu+ew5DHPhz0e+X7fKlpWpbZLOXvy73+4NA21ox9UCuXLIzFKpVrB2uTqNO9usZPuL7qdozMOeiZyInZOzAy5LBxgkKcNA4zspPTPEqQP03ffvb3mihJc28/XVG6O6jATjc9ceyaiYqYtZSU9bWEKVD6aqizXcYkKpfV88Kte1Z0Wi2neObeFs6rlxVMorytqqH+LsZSz7WLHsTgFdu5Osay27eVliXWm49zBQdW4hRyx7F+rrA4AzNGN9W2Bxx47WqMxsyBrIoaPkbZKnwHbr4XtjCK37BTUtHvHyDIj9+pqKqzgxG+uCCB+wUj7HSEg8tuVEEuSOJGlbUrGHIuLGT4VQAFCr+QwbowBNjzkeLnHFDCyUW+cM/gpoYM31xQxv2GDDXudUGGnw6kgPMTGfY47cVn9HsEKXFkMZq64PIji0dF6qqyOHyqw/h0vQgpUqwzHt75NO7uMMHFgVRxtpjo90kstvNMzG1ByrSYeJxfnacaSKh6kDpeFQmNlTWDT9fFgwzw6Nr4gxUGY1J7aUEmtKjdmNtcBlN3ICOcOo/Z9Gl8KUJmFGm86ScoiUQYy4UMcS0SbeIVRXuSI8iUI9rBxKYBmhshY2jWjEkLdokYjAMZ4xCzKdmrahjfhcxx/RW1zT4JMTlYAzkSbKIzii6pdx1YAw6pi7uRhSHJugBroUDS935SpbkFa2IroQa1yYxM1HqD+Xj6NJqOJ8GzoA2TSRt1qFOSq0GA1/nDkHjhYhqAACR/nxohebmFmQwxymwutTR5Mt8lvb2AfhYYx4J/dchU4DCuvuOfM8wrGI815p5RxNV8JxKu9O5jIg/iDnXysR8gEWMmuIqReKxZ7jP0cEmFdy71UsGVTDhnW+HX9Iy/mGE/wOvSM1xNhTPmVMME9V8PiR+0eQ0GKdbj0+hx6Msoqo0fdCI58tjjXJghFWX6dxWCmcTSeMeRbHklXDuM6a8GHyI+ClsNrSSu/s1L18K+RKPdPMGq/4j607XNOrYDXDz7Cb85wpAhcOFQ56b1Zl0ixgRJH1jAR52pPsvCJvOQ9P8DJLzxGg3tWUrCjr1IsowXJLyKOnfJMGwLlxSBD+LYo0RhKsBHMVSsTcqHigd8EKd5T1TTEPjwKqSMGOCSS+Dj7TEkAMoTr2tTLnHJwOhzJCaZ7DkGEE1PfZKyz0GNtwUSXoCTc5K4y2r9EtUeEh4l+qeycYdLbtR0NENKALzc4JI70hi4oEAwRMqDTI+QJzHvDOSZW0gZvgE3ZyTqNUnMk2bis7IQ6xWIek1SczogyzvKywIOqTzD9W1J68hHykKs526F+SAFYZ4Z2/WnryAtjLqaRoyKiE8Lq0ndgF+oI82IisQNWN21p2qyUNdWD3ozJVnYoHePS27lzJfYbgAS3OKSe+VEGSTkAJlEqVxCTGgLRZEoIWhxpWi/PpuQJIorWnYqClMBKWjZSQtyHcLQgpxtVSR4Hy6ZgQy0VWGbOA3QJo5tbzVA21u28dcAafyjI5G1Q0ciUsMiSjAOCYAiPiySGaMldrQjJZO5Sh4wqgsjN2Cko9f0hJEcvdpkKL1mYehQOnFcry6M9LiebmSsVxi6kaGyxaMuDLvFo7T5pS4Mu/mluC2oLgzdFlTbMFUXhm6YKm4lqwtDt5JT2WSfPIRMUtlk13/8YEMPZug/srKhh3n0H3Pa0ANg+o/GbeihQf3HKTf+oKn+I7j6Dydv/rFt/Qfa9R/13/xLEPqvh+i/OLP5V4r0X7bSfw1t8y/o6b+6qP9S5+Zfd9V/EVj/FWn9l8fXe62e91q9/gcHMn6K4SZ8iuEm26cY9D9Sof/5Dv0Pm+h/8kX/Yzj6nwnS/4DS/+RpKf2Pbik/R3YXPkd2p/oc2T/p6OzocF/w9gAAAABJRU5ErkJggg==', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAFZUExURUxpcf/////AUP/////////////89P/FWP/////EVv/////////////////////////////////////////////////TWv/bev/gnv///////////////f/QUP/VYP/xy//9+v////////+9Pf/ghP/////////////////pqP/w0//////tvv/SUf/SVP/////APv/67f/Ug//////89v/////////JYv/ak//////DRf/////FVP/MeP/qsf/////BUv/56P/9+f/fq//78P/////RUP/Zav/AUP/44//ikP/puP/FXf/////FVv/z1v/Ocf/Zbf+0Vf/z2/+pPf/cnf+qQP/RUP/////AUP/acf+pPf/APf+/VP/FWv/XZ//mn//NUP/IUP/GUP/SZ//EUP/QUP/CUP+3Pf+xPf/ikf/Zb//UW/+tPf/Wa//fhv/PZP/JXv/dfHDacqUAAABXdFJOUwD9+bcR+fD2yvbmApoLBT54JReoLvbXwMKCUx38/8zQ+mmw/slY8dHEwtM3y+zfiu3qwtr0b5HFwOvYvs6/x6Hk5ffF7V/5xvHgv8bZR+zZx/HJ3vG94rcNazsAAAa6SURBVHja7dzpVxNJEADwDpPEbO47HCEhCYRgghLuW0FEFBDQdbvIJnLJA1RY3f//w7Ier3rCdLrTc/CF31ffM+V0dVV3T4/ELPfLoDbq9/h9xeCIm9wnd7TiAuRZmgmRexKKlqGdfyZM7sNLPxiZ6ieOCweBpy9AnBWvAJ/mdjZzp6ATX8jJMapAZ0UHR+oZiDx1bh6B2K5T9cUPjGwtkx7fHE9n8sAadWig+oCx+oT+lq4Bo+DMrE7hL66/oqxMlqnFjsyoAhNLmurlmGgcqcRL+HuvaLsM/uEzYr8Y/uO36V2YxuWk7aV31oPzCHMXpQEVY8RGgcICoDw18hqQZ9a+LpUcBVaGGnkDrAWb0jgQ9YBOjhrJgF7CjoczUIE2aWokB238EWK1qh/kgnkF7bIzVvdGD7RbS5+enZ9fHP5wcXFxfn52enIymFuDO56FbWhHKLuao/Tk/PCu87Pc2Dq00SzsDU9Bb33sV4k5uTg08vaNF/R8lqVxEPRqTLU7NQ5nq9cFOqMhW8aoru9Ig6eHhpb3QEezJG9GQGdsnKJOY9Wz4gVWkJhXTQFjw6jSDZ4dGnr+GFhR87XOD4zXmC1SD2cbkPkVTmgUGPlxyoGzXG8eGKmquX5UBMbqJuUa5ESzkgXkNzXBZ4DRS5F84swNAUoQdbEUoFUqwIlm35q0CVQAPd6kIqfivFlwq+8D0BrmbtfPZhvQLFHjZtaY3idUhnEWbzH1Jhsz3x5zVMrghXH1Y2qxplbuPEwPoAKC6rcCqGqyV2+MU1knh4aYgdJMbqmxT6sm8Q5T+5KmFg55io4aR4K0OTT0wUzlC5VxXcfMpH+Oj48/q1SbrTpu7dwmTqd6dbHc+ldlfk/iXzijftYwhA/m5viHzyo5vIU9arTbeW04rT9jMN0/mhfKKRw12qsdHf/UUOpRy8prPmyRe/qMwQfDNyiqNZXu2pLL6Kzh+KcjxVqDZdgVV9sRZLH4fmUejFIKY+EbUWoFbMH7cowTW8C4Q+XVFhKjRqP0BUdJ5ExQanxEXih7Zy7hMFHU5XzawSIcJtKq2AoGKWrgg1FKmp4hlUpT4Bwifm00vlJkYnL3q6zx3lAOtSKsUvYSghNN8xkcJNJ8grWvagbvqyz3cLP/xNJgllXmNi6sxi0N5jm+/SbSsMxsUjUngmD8RFYYF1bU0mC28HREvmfjRtLaYHqwBD8E8xDMQzAPwTwE8xDMQzAPwdgZTBzPXO0KxqVwbLVmSTAI17MBIimGrwEtDmYafgt1v9XeoxyK+1s8f40TSbu41bY4GLzpE+v+3KpGVV0Idv4RIqnAHrtauvOvdX8M0ad8CIHOBMcQBSInIDqEUN/fznd5LTYSXGDf7ag6EZy+LgTFWZMsCm8ymXlBOAcMLSnIFhewspvU2qR5DixXH+ELFQFhAbZynLygUwxxY/EBwsublj6ax7JX3xOAcGZb+2g+QJuE4K0OylELo8EMFl/xGUhBOy8vf9Vfcm+tQ5vUgOD6vnIzEF9j2QbEvcQccwGqjw3/7+DIAp/0DoZvjdUBuWIdM2a1YbvVjlnDTOvhhgOGmenNX4NDreGIGnBXfRF8qXPQcMQBzqsId3GXbzgkz31jOYOXDb41HHHTy72OEMVgWt+/NOz3qYXBRPlr8Far9c3ucG6+t1o1HCZuAnt7Wre+f7IvnptvH29/ocfLTeABYMbpl4/2aP2EowQD/DfZsNNywA5zibrTraahyZbt9pkbn32kXRIY7yd33j7i+UPWI5636T1gJHnrPLG5v2WtgJQE97slscy1bDDzwCe6X/kUpMyXZIN5ASL8rWVAAxmrzUvJYPIgQQvwP6gV2yhJRvPnOohNuVU+NUbLzWZJJm/egVglrvQRNppv3ipdWZEywTDpJOIDkXqp+UOpdHl5eXXr+tpwlKZBwBchIv2aBzrbb95Rury67q7KeLR+IiPU3xfUfO0wRO9EE7EBsfH8hemb8rXRgn39IWJGgs0anssrg4yZJZaLMEVzuWkMM/udrvdYj0lt72Kzg9vhesfUmCKxwS6gtYlmJ4sbgKp2f44M7xc7xbKma8q2iHkATc81eebWAZXjxB5RYM0bD9VELzjydX2gCKyNzMTdUCanBYcvisRHkPXJRX2yTG6AzlKY2Cfuhzb13rnlxYnSxOLyXG+ds0CwS7IM8hZixF6RBZDlTxK7DfhAzlLcqf8GR2w2TBxR8IBIaoQ4JaZBZ4kB4qDdCvAtRYjDIkWP8QAlquQeuAtaGfTKxZchcl/C1ZlZbcqfcpX9U9psIRkgZvwHj84D2vhDRzQAAAAASUVORK5CYII=', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAGAUExURUxpcf////////z//v////////////////////////P8+v///////ynGmjrMo/////////z//ff9/P///////////////////////////yrHnP///////////0TRq03Trtz378706ojlzTXUq////////////13buS/InaPq1zHPpTvUrf///////////////////////////1jUsoXhyLzu4DLNo7Tu3k/bt////8bx5eL58tf17azr2mvYuf///////////3Dcvu77+CvHm5vo04/lz////zXVrETWsDjVq+r69izKnv///3HhxXrhx2bdvv///yy6lTPSqPj+/P///1vrw3b21inFmS3KnynGmjXUqzHPpTLRpy/NozPSqDDOoyrHmyzJnjTTqjTSqS3LoDbVrDDOpCvInDLQpivInS7MoSjFmSzJnSnGmSrHnCW1jy7LoUjetkLasU/iulTlvzzXrm7y0XP11FjpwTjRpizFnCrAmGLrySi7lGfvzdPUVLgAAABVdFJOUwCzzPgQ61T++QLxmCD30Kg9/PYV8S3T5QU07roKkcrF3tbA+cZsXMLcxe3ZYUSCG8F238LAz+DLyNjS49vIvyVnoL/t6MPBivLO5On6TL+/wGTd9ND/kGkyAAAL60lEQVR42u2b+VdTORvHy1K6SAuybwIKyq7sCgIq4u6M+nqCpaUtba9wW7rILojjv/4+T5Kb5LadGVuaes4cv0k605/8nO+zJOTeOn7rt/7Dap95Mu10tzk7e+82tP5Sku5rs0SRu6ah6xeReBqGSYGct38JzlQHKaqlhqqj3Kshf6um+uqy3Gkj/6DZ5iqidD0h/yzXh6qxtA6Tf9XdKrE0zpKf0I2qsDzqJD+lF9XwJZ/FO/Zg4uXL1w9uPSR2zejP3Vpi08rIUGgXFNoNhR7ctGfxHd0w1+yuvAcGIOE8uyNe2+7QrpdlkqhafU0pTs/Pzr4fU6bXNnM6+rRujG4iVTfC7Ah9/4Q6O8ZYDY1Vq6Tq1aJueQVOhNCYT1zfT0MgG80f+mBuqOnyCjioNYefLJ0dhUKJoVV1E2/Vdo5yKSwTtIKQBmG4vh4izX0iVaMLZppI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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAEgUExURUxpcfv9/7zj/////////3XG/////////7zj//7//97y/4DM/////////3rI//j8/////////7ji/9bv/4nP/////////8Pm/////////47Q/////////3PF/////5XU/////////////3PF/////+j2//////X7/////////////////6/e/////////4DK/3bH/////////4PM/////////6nc//H5/8zq/////////////////9rx/////////////0+3/129/1S6/3jI/9Pu/2rD/77k/2nC/5/X/+Dy/3PF/////0+3//D5/37K/7fh/6PZ/4jO/5rV//n8/3fH/8zq/+P0/6/e/9jv/2nC/1e7/4/Q/5XT/8Hl/169//3f43IAAABLdFJOUwD5xVv34hXow/3Xv/IK1fSHDsPRxbntx2LTwicC+r/BRUuX8DngGu+sNLPgwHYizdqRysqf5cDqyoJ9pFLTxwdu78/cwdXEv8bQ7qO8DtYAAAVZSURBVHja7dvpVuJKEADgRgjcMICAgKAojKKiuO/rqHP3UyUQFsX9/d/iztEknbYTEjV0e+7J93+0prrK7qQrJBAIBAKBQCAQ+GLK69WLuXr+R6kRc9Eo/cjX5y6q62UyCslqejuC7xbZTleTxFeLa7MR/LDI7NqibzkJ51X8JDUf9iM/0XQCfZFIRz+7PlsR9E1k6zOrlaGh+BVOhnxQOIa+i4XJR0zP4kjMTpN3KzrV7UF84nDyt+HGJg8n4gdOlVx8bzvvIk+N7+dS8+DZfCq3H1eRt5t81xKV8K2l7M48fMD8TnYJ3yq9Y6lqBWSph7kZ+LCZ3KGKrEKNePQ9goxQVoFPUrIhZES+eyxdlc3KqgI+UFbf/FhPZRxGxsQm+GRzAhlhD2ukMmU7BT6aYkpZdV2pGlMvZwr4Sjlj6qbm0tNMH+3PgM9m9pmeGtrh5yWkQjkYgVwIqdI5cTaH1PgGjMTGOFJz3hppKQUjklry0lLrCUteUjAyKUtuEuvE3gqaQhswQhshNK0QW6dI5WCkckidEhvJBppWYcRW0dRIEl4aTfEZGLGZOJrShBON0EZSYOQU2lKR6LDEVECAypDUZBJ0kUCIOG3vDGEdo0FNgRApFQ3HhFGOoSELgmTRECuzpxiaGAUEUWhq2JNNHQ1jIMwYGupM+dK+3gRhNml3ZwhVRMMECDSBhqLtFjkFAk3ZbZflBOpC8yDQfAh1CdpPy2iYBKEm0bBMDGvMKklZpzViyKNBAaEUNOSJYQ91CyDYAur2iC7DbwXit4QMV78VEKzCVXAYDTvg7EHrPoCD1qPWbYGDTld77IO9He6Z5ci9fltPTfyl2e7bhXmr4i83XbAxePmHveuOSwUfvX2ODDlmpYm6Jv9D22i45kJt3aKup4Gd0NtnyxPUHTgluoemZouLhboGVv8GTapt4g5Qd2LsTG6dfYMWt8B4QCsNGE9o0Ws59zbdnWZdTr8aMh7B6hatmuwi9dDqadhJeJa82nY5P9yi889sqUMiHSCjOewUse0xmCYybsDiEVkDsLhGVstDMHmXZeoN+Q9qyGrzKaU6HpapzhWw98x0P5cZvoB3aWu71Azfvy1kdbmup5peWnvL5Y/eABka1/ZUrw8WHWRcu//Rc98O+k1ulaguVzJO66R2XLYDbxtlV0VT7wGcf+FNHxitJlIDl43S6xFC65mxdLm8XdNYuArt0Gja3o4QSdX1cbKjF7Ht5qs1X+Ns9+22+x7SLd3D4Yo0PBw7O1q7rbXA3uOgPej2wVZfa7cHHc/HTrLylQ7kx1/gUeVrPsSVC6gbl/94S06kP/jb3mCcyX8lElXlvyyi6mj4W/prNFKV/YKR0UDDmPRXr2QNTRJfSvP3GGeSX9fLv8hgZQpoGJd4xcNXzZnsyy+S3JN/LUiF5V+Yyr9KthctyL9kp04ljh/wTuQPZlBJZmRFkTuyQhb3kPr2DDKGeajlhCWYq3uQNOZEB8BoMFdXdzIGwKgiE8zV/Z3E0TgStQTz4hlkDA3yweie7ySNU/LB0MUSPmjKB0PTI3wElw+Gun++uwNxw8l8MLz7+/vNf8dYPo9tew/m8o8FMQPt7sFcTh2IGfV3D+b3/XExH0G4B/NzTNDnIe7B/POn4A9n+GBo1Yr5pMg9mMvKEsr52EpFXdas2hBSYj9D2zNz+/OlaifRTkHMB3oraAhV/voWRzsrVSJG0TX1u9NElGgEhykcRYlAaXTWuEgSoTIxdPDjtExEq9kulFqvERnCKl+1c+tEkmoBGbHjKJFncVdFU6l4TuSaPiq9XtjtVslXkFyv1RZJIBAI/H/8B2xJJCgm92AgAAAAAElFTkSuQmCC', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACRCAMAAAAmVqBJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAD2UExURUxpcf/+/v/////////+/v/////q3//ZxP///////////////v/t4//////////j0//////7+v/y7P/////////bx//////k1v/////18P/8+v/////////39P/////////////dyv/////////////////////////////gz//////////cyP/m2v////////uhkv/dzP+Cb/FzXv/////j1f+PfPOGdP7Qv//j1P////+Bbf/ZxPBsV//cyv7Htv/IuPZ0X//h0f/i1P/ezP/gzv/bx/zl4vakl/STg/729PrOxvi3rfBvW/SZi/F6Z/OId/F0YR531hwAAAA5dFJOUwDO9brwELL4/fvq1qwD5vcIx6/bseeOsOG2wFv/vE9uN8R4RKQMFWQnui6B178diK/43tKX4L+27cUv1KkAAAXNSURBVHja7ZxrVxpJEIYDYgQGiFzlUoiAF7xrNNkzx97ZZLh4i9nd//9nNuoyL9Ld00MGqvMhz9fknDzpqq6q7rF995vfWCL/i3jsd3adFKVTzm7nzPKKbFcyBBKtTXsuOw7NUd+2pLJXS5PM7r6VZHFISarF77KeIA3pA/YYwUWmwyxzTWH0WF36aQqFc1NtlimcLOOe6hEBJ9etnhyW6jRLha/w4h+mVM513bH3g1zWShJvU0DyvfuM/2xTbRLIcnWGNQrIua/4o2edBoEDpnqH5lh0A7xn2pAp88i0KOA1SDORKnNv7wr+9+4rsDnEqq2xyKRoSsmd5SVtkMSZPQaXIwo4deWl4Y3TAUYpiCCH0UFrDDK7NKUND8SpxJo0zmyRkeO0hbrH0CTTypTB7qaA1RfhHbSCoUrGQ4saMOZvwlXKIIP7K5epzecvGHqoNDztaU1d8rC3G4zTZwGNSS1T4is0+xTwSS2Tw4Fu5aM4TSm4apktvqrXwyxjlEnwzQ8NjQxapbNqmSyagUami0bKVn/pk0bmhK05HUtTnlT0qugXK5Ypo/7qZC4x67GdmJAywHuBAlZ7lEwgBB9kF/9VBjNGfhmXL+saahTQdLUymSUNNPmd82Y5SRF4r5dJLkVm/bxAEXGGq5XZ7KXICNJ3pTJnSM7FFgaM52XW5qnsXve2z8yltUDRSZ66Zhk9Tq2fD3VJUkQw4+nDZCZ1vqePUYEWoO0aZcxkO3lN7iZoARqod6p24BUoGuUdpUyHopNBjDRJ40ROvb6q4mbn/lJKyUtlTSB3dXFqUlQyLeVcgD8/vfh4o6ZIlEDh1dvkSI/5O0OdEMfPN1pKJaxKqI1DkUkO9Lc/dayKzJdwD9x7VtsUmWJeF6X055sYMmD46fS9klyp1JxrOj3twH9jlInP5LCdJpB52x1QZC5YZIToOgSONafnjxwy4gfVImQKb7IGk9kNg8xQPLOR0NyKEquML17oYgkq9mTG4pUGak3eukyXAgbWZEbif7CjWtZkvKkMbrjO7cvIl0r8MpOpjHyPwy8jppzYl/EDmSrmll9JpmBLZqSQydqS8RQ5k7Ivc2g/ZyZCrjNNWzIiQLrWZ5fxIdPArGdJZgwZ6bsUu8wIMtIXO3YZDzJZ6/MMNtMGzit7dmSGIqArFWBumbFQlJkEt4ycvznrp4MJZKTvquwyAuCmomNHxhcgYftEORIAJ/wjOzIeXDZwvF23IyNAVxqtmGV8oS0z/DIjoS8zsszXUGLLTIS+zMgyf4byV+zGpC0z/DJjoS0z/DKe0JYZfhkxQ5UC9thlECV5mrEhMxHKMlNkl8Fekg9N7DKoePKhiVcGUQJF3C7yyiB9AT5x7XDLYGHkAWI/isz3R//28e7f2DJo2JoBwizzzy298HAXVwYLox4gzDL3DzTlG2RiLYxuZxtl/n4g8B0y8RdG3tlGmS9E4PYJMnG3ktyzWyaZpwzNcg+ZeEECWexsk8w9veFbXBlPAKlnm2Tu6A2PkIkVJHAo3UdzyfhCIidddDKFycdOUmyma6PM08MSExguqjbZ0csEFWVpW3sIF+UA3H+3UNFLo+jFjhG+GqBNsrWDsVCyNbuZmBrl0BNqGtLR1jhCfIk1QiBEMs6b/OUYrrAs+pJHRwwyyJbwKKXyDDKIkIJqSkqZFcr4ngijRAGtVcpARc9JUnqfu3QZswpaAX4GQiazNJkRcsWQvdpnajhQXRlkYiwKhgcpfXU/jfbTMj4WJYSNNoHMIPxhTvunZIZjT0RiyyECx6YX+38sKuOPvYmIxMZWkWapbyplBhRQuAqT+fCGy8vLjWhUu1u5+Z+iTPe1r2FgE7I2TVoinUi/WaF9ccUgU9M/fygQM5W84QkrIzW4yOSLxEiyZXiqWSc2nCPjw/0U8VA/QIj0NnUWlc5mtEe1xZXH53wn+quvg8g7PLMgheLucWuw6HOrMkWi/46FQa+SqGesyPwHVLbnDs6uI5UAAAAASUVORK5CYII=', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAGzUExURUxpcf/////////nof/////osv///////////v/78P/GNv/////vw//////////ul//////UUv/HWf/BG/////////////+0KP/////////////////////9+P+5AP/////////ERv+6Bv/XZP/YfP+6BP////////+8Pf/WAv+/AP////+1LP+2MP/gi//zxv+5Bf/////////35P/vuv/y0P/QRf/////////////hqv/////dff/UDP/QE//////33P/hRf/OOP/KCP////+zKP/7wv/SAP/RAP/AAP/PAP/TAP/VAP+/AP/QAP/KAP/OAP+8AP/NAP/UAP/MAP+9AP++AP/BAP+3AP+7AP/CAP/LAP+6AP/EAP+5AP/HAP/DAP/GAP/FAP+4AP/JAP/WAP/OOP/HK/+6E//EJf/CI//LMv/FKP+6G//NN//AHv/MNP+9Gv/ILf+3Dv/JL/+4EP+xBf+8GP+0Cf++G//BIP+7Ff+1C/+2AP/cSv/0pf/6vv/eW//NC//wmf/VJP/uj//YO//ofP/kcP/GCf/rgP/3sv+2H//jZ//KHv/PKf/CB08sDQMAAABDdFJOUwDu4MgI0BpA/PLG+NH+y8guxsDO12kD9Kh4vhS1+PafYcLewsD+5SfL5/SH39jD2+xXkOzU485LOU3IIs/6z0jjv/LPZMfuAAAKXklEQVR42u2b+V/TyBvHoRymIF2WlkO5L7kUccFjvfYa630rAh54sN6oeHw9t+VGZMH9k79P0jafzDyZNG3a33w7L5JM5nnm/ZqZhKTFkqzUDrVEdhkiOMauSMtQbUn+NA+FRGEJDTXnp1K+o1QUntId5Xm49MVEcYj15ezyW6koFqW/5eiyzxDFw9iXk0tttSgm1bW5XEYhUVxCOVxU7aLYtPufpBpRbGp8T1SLAMbw8YGrf/vi3N/nqGjqzg0cHzYEaPHpUinA3gE5MUEb3/uQs3z2ClDpT6YeEWPHzjHQqXSMrZ5jY0hd709mpx0QHtClvXruKhW2n42BsMiw058M7jF/XCWoI9Y5ocqg3hHD4v/AvcbfTQaLdwAJNZ1xvIUGsIibsy/e+qYIVm8q0dmrZ6mg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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAIEUExURUxpcf////////////////////76+GwnFv////////+KZP///3Y2Jv+HX/////////+HX4hQQv////////////////////78+v+miP////////////////329GsmFf////////////+aeP+IYf/bz//////////Brf////+NZv///3EwH////3s9Lv+HX////28sG/////+Oaf///////+vi34xWSGsmFWsmFWwpGP///////////////24qGf////////////+7pP/EpaJ3bP////+IYP+tkv///49aTv///////6yFe5VTQ//Itf/h1//s5sqxrJdnW/+TcODRzP/Pvv///////////7eVjMSoof/o4f///+7n5YJIOf/y7Pjy79XBvP/l3Kd+dLuHev+ff//v6rKOhdfGwbybk9C7tebb2f+1nOjc2dzLx/Lr6v/Vxv/lz/HCs/+HX//c1P///2smFf/x1//Huv/Asf/q0f/Pw41PQIdIOfvXzoJBMf+7mf+Rav/Yzv/mzf/u1P+ohMKPgv/w1v/ax6NmV/+Zc/+LZP/KvXk3J3EuHf/NwG4pGP/iyf+ge//MrpdaS8aXi+W7sqhwY//StP/ZvP/fwvO1p9Cil+7Hvuusnfm7rb+Acv+yj//Vw+Kikv/Cs9uwptaroK96bvXQx9qairSBc7VzY4Pmm1QAAACEdFJOUwD7AuH2/fbt3JTcYM/y8hD9wtTrZ4sF+8CEoj8j8fjvxszF5dCPOMKq1m/XLcr4z9x30heb5MH89OTmCrMz4UZLHMD+v1LqvzzAWLzA/cTV4Mu/y9nIfsEMw8jbT+fF6e7R2MD9w+TC08XP37/g1uvL48f//////////////////////l7r9LIAAAmBSURBVHjaxdz5XxNHHwfwCSQhBAiQQBLOAOG+LwUBEVBBAQEFxT4e9X5atcfzmv1OOCqHiJRTQbyvWqut7T/5hGN3stmDnd3Fvn/SH/p6fZz5zsx3ZqFIL29xWkbmqMPjCbisLTV9menlWefRv8F7JD3PChI2d2Z5Nvq6iuM9oKym7uvl8SY4YC/5Cd5/PwoVm7b/cYrdQO0VJwbtp9YiGzDI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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAJzUExURUxpcf///////////////////////////////////////////////2Oa/////////////6DC//////r8/2smFf///////////////2Ka/////////3Cj/////////////////////////////////3IwIGKa/422/83f/////////////////7rS///////////k3//////p5GSb/4Ov/8nd/7XQ///9/Ovh3msmFWKa/2ac/5S6/////2yh/////8DX/3an/28rGv/////6+f/b0q6Hfv////fz8+3z/3k6Kmie/6B0aYBFN//Rxv///////////////2wnFtbk///08v/g2P////////78+//y7//v7JtrX9zp/6vJ/////////4pTRubx/8Pd/KZ8cf/////////c1P/Sx/nz8P////D2/8OmnsuzrPT4//D2/+ry//X5/+jw///c1JzL/////9vKxv/d1f///9fFwOHT0N7u/8+4spFcT6zK8pvF///c05u////Sx6XQ/7eWjf/d1Yiz///JvvfIwP/Pw6rR/8mwqv/TyJHA//D2/7rP9//c1GKa/////2smFZrK/77V///Huv/RxrXQ/5bG/3Wn/3it///a0mif///Tyf7XzqZsX462/5pdTp3K/vLKw+z1/4hIOeO0qHEtHH+y/6fK9m6k/67O/9SkmX49La93apu+/6PK+o7A/5jJ/2uj/5FURXYyIvfHvv7Owr2GeNqupOfIy//LvtbI1qrJ/2Wc/6LO/4a4/8aTh+vCuZ9kVoGu/8DJ5fvIvcvK36HE/9rp/8GNgMXc+uW8st7N1/jSyc6bj+AhvzQAAACQdFJOUwDuiAkE/hP8//jzAQ3tI+vSwHL4+a+9GcL+3prNQ44dqEfkaV3W+MDOpJ/WO/62V8AqweXCysTj4/Ly3r/F0m7IyOPO68DBfPLmzNm/xvdReJJB69PSy2Ex883Jv9jCPkvC28HByoHx0OQ26sbK7+jk8OH43IPV1YDQ2s3Nwfvn6L/qysPc2+TixcrK2fv1/ZmAfOQAAAmNSURBVHjaxdz5WxRHGgfwmrPfHgaG+5L7PpRDEAU5BEQjeEC8T7yv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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcf////z9+vn8+P///////////////////////////////////////////////////////////////7/osP////////////////////////D67Jrobp/pdajqg////+z45////////////////////+D11v////////b79ND0wv///////////8ftuP///////2jBSP/////////oqGTAQ//z1HvJX//deNLvx5vnb7XrmP///8fvtP///9j4zf///////////////////////////3DEUcfqu+T03tvy0dnz0v///4rQcf////T772TAQ////2XARP////3FU+r55P/ijPvPaf/44tvw9/777/+yIdvx0////8zqzf/99qHYjP/bh/+1JvzsvP////+0JP+8Oq7enPT23//PX8rwvJbTf7ntnOD32////8fvuMjwuJqTfv/deUonGffFSd/y/s7uw//ffP/ff+3nppvncP///+X36//NWPrvx/D37M/Zwt3y4l5EM1w8Mdju8fDWhP/eeriqpHlgVf/eeur49u/5/ejkjK2lmNrjwbTumv/GTNju8qDbi4WAZH52XLrJqs/RxKSwi/bmptXu7Zjhcv777c3xvv39/P///5rnbnnaWGS/Q//deP/FSf+yIN3609X0ysbut/D5/+34/+Hz/0kmGHfYVnjaV3bVVGXBRP/GSnrWV3/ZW2nGSGzKS3LSUW/OTmfDRtr40JHiZ4fdYInfaO/5/+35+YLcYcLvsNz60v7JUP+1Jef27Py8NJjmbdP1x5jjgfvNV//YbXPGVZXlarLopZ3ncrDqmE4tH//BP+bih+Hjmv/RYej3+G/FUN3z6LvqqqbrgcbwtmpWQv/ERs3r3+LrtfLfevreeJ/Ylujz4bvwn+7TZ7fivNb00/63KsfvyOn3/63tinvKXsrwvJ+hhMvgvJDhdOTuxuPMZ4XNcaXnjpPWeuHnperGUeb1/+PWfJ/pdtvestrn0uby0tvq37rSp4uQbLDKmuY+auQAAACedFJOUwAQ9/b67AT8/gINj9aUSiQI57Upw9rCWjNt8+f21MXv5Gk4ULh71C507/zIHWHL0uHc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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAG8UExURUxpcf9iGf/l4f/////////////////////v7P/l4////////////////////f/69v////////////////////xxZf////////////////+bYP////+MM//wwP/////ii//v7f/bbPx0av/UU//qqv/////////RR//XXv/Go//////////////QRP/QRP/////////////TTf/////UwP////2clv/ff//78f+ugf/00f/77P/RRf/55v+aUf/v2f/RRP2qpf/////Itv+PR/9zLP/g1/yPhv/QRP+QPP/Clf/r6v+udP/Or/9mHf+bM/+EOP+KM//////QRP/UYvxwZP9dFv1wWP1wVfxwaf9xRf9xSP5xTf1wYvxwaP9xR/1wU/9xRPxwXv5xUP5wSf1wW/xwZvxwXPxwa/9xQ/5wTPxwYPxwYvxvZf9xSv1wV/9sIP5wTv1wXv5xUv1wUv9wL/1wWv5xT/+aM/1wXf5wUf5xVPxwW/1wUPxwWf5xVv7PYv1wYPxvYf7EYv/EX//IW//RYP9wQf/PYf+1SP+yUPxwWv1wS//EWP9pHv+FMP93J/+CLv9xI/+mS7+gn90AAABRdFJOUwD+6Or++t0b5ulh8EcD9/YPCL4kbPmHrZ1VzijwzXO+5sHvzsUVNuDH0KYslv73tdfJ14/U0dnA79jV6erkxtzx2Xva0+bp2/vYwvC/5fb92c7NfiIAAAmdSURBVHjazZyJX9tGFsfFWsYbjA0YDLhcyxmugAlHkjb31bv98Fw7d7hNAafhWtiQkG6yR3abbGi6//A+SSu/0YwsPRMQ/X7m85nRk37jr8djFZMajUWkur15dLRpsLkxVa9xiaTGmwdHE02NVdW92lEx1BgCgcrhPv9MLDVYCYSeaIgcgUldwxgoTFbFfEJpsCGfvo91qU6DK+mUh8r1ELjSVP8xKr2DUJLEUIlQqhJKEW6MHX5ZouCBPuy2LfsS4EWi9pAuqTh4E22IyUvZrIM36cO9VFVh8CVd7dgs7VHwJdp3GBcdOIzWi5udQyhS/s0lDjzC49Y2aBkFJmN15d5eJsHB+Z5z/d3d/efazoNCCO86teNhULjU04mh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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAH1UExURUxpcTMzM////////////////////6+vr////////////////////zQ0NDw8PPT09DU1Nf///////////zMzM/j4+DMzM////zc3N/////////////////////////////////////////////////////////////////////////////////f395WVlf///////////8LCwkJCQv///////////////////////1BQUKKioomJif///0NDQ87Ozu7u7tnZ2eLi4snJydDQ0Ds7O1VVVf///9vb2/z8/Onp6UdHR////0hISHBwcP///zg4OPHx8WhoaDY2Nl9fX+Pj41RUVH9/f1NTU+zs7P///9bW1mVlZTg4OF9fX76+vm5ubv///7q6ultbW5ubm4mJibGxsZubm319fXR0dFZWVqioqHd3d9vb2zo6OpWVlYyMjLOzs+Pj46qqqpOTk////2lpaf///56envn5+f///zMzM//ORP///8GeP3FiOEdCNDU0M8+pQJ2DPDg2M/XGQ/rKQz88NDs5M+a7QlpQNk1GNbGTPcumP/DCQlRLNUM/NP3MQ4l0Ovz8/GFWN+y/QmhbN+G2QduyQdStQHppOcWhP5R8O4JuOaKHPLqZPqyOPTQzM8CePqeLPI54OnZlOHNjOWObQFQAAAB7dFJOUwD47xv+FAXITvoJ4gLs2vToOKqN/Pny8+IkzOgtuPbFdijl2WE+aA+yVkPce+jOv28g1NcwUYCXnEjR0cxczdzx6eDV5tDP0Nf68rigxsyUwuLE3bbryMC53YbOysrNvrjUzsLCvdOzzMKowLO2u6Ohv/Kqt6PNn6TfyC8an18AAAeVSURBVHja7ZpnVxRJFIaBGUZnyCAMSRHBACgqKsGEijlizjnnvLtaVQIiIgomxJzX3d+5R4/H+w5VPXcoppoP6/Nx6Om5p6l+ut7bN+U3v/k/U7KgMb8qGg6m1c1umlY5lpUEJlepGDIKyseolJYZYaVT0ZLiP3NnKA8q5vtcSmhyVHkSbgz5uljWqLisCfh4C2Uohim+/avKyxRLtNafWvLSVAJEfbk26VNUQkzxY90Mu6XDF6+cu9Te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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcf/////////////////////////////+/v/////////////////////////////29PdvVP/////////////////////////w7f////////////3Mxfumnv////////////+kdf/v6f/8/P/Cpf/////////SvPFaTv7l4Py7tP3CvP/////////////////////////////////////59//7+v////FWSv/Is/////yJfP6afv////////////////+uf//28f+yk//5+PyxpP////+0ef+Ua//s4f+tdP////qilPBRRf7X0f9vY/95cfaDdv+jiP////////////+6iv/u5v+Xcf1jWfNxZ//YyPJjVvNaTP2JZP9qXv/////////h1P/Bl//j3f+Xbf+bbP+WdPiRifl4Xvp/XPqHbft6XP////+wcv/Qrv+OaP+Xav/x8f+ocf+Saf+kbvRiTfhwV/d9aP7e2f9zTPVnV/+KZv+tcv+QaP+LZf9jW/+dbP+PZ/FSQ/hoSv/6+P////+AZP97Yv+BZP+Wav94Yf93Yf96Yv9xX/90YP9rXv+aa/9yYP9+Y/+cbP9wX/9mXP+Taf+DZf+JZv+Raf99Y/+NZ/9nXf+OaP+Za/+fbf+HZv+QaP9tXv+FZf+LZ/+EZf9iW/9sXv9vX/9zYP+IZv95Yv92Yf+MZ/9kXP+hbf9pXf+kbv+KZ/+PaP9xS/91Yf+GZv+Saf9lXPBUSf+nb/91YP9uX/9qXf9/Y/BSR/9fWv98Yv+GZf+dbP+qcP9hW/+Vav+Xav+DZP+rcP9uXv+jbv+ucf+KZvJWSvFVSf9gW/JYS/+lbvl3WPNaTPReTfZrVPp6W/huVvl0WP+scPNcTfVjUPZpU/RgT/VkUfZnUvhxV/yAXfRhSfdrTvJZRPNcR/FTQfBTSP90T/VmS/hyUfhbUf5/YP93VPJVQ/t9XfhsVf2CYP6GYvBPQP1dV/+wcv55X/x0W/98Wv+xcvpnVvxtWf95V/ljU+r3mj0AAACGdFJOUwAFASv+/Qn1+0mr8bpDE+zw6HeB4xsvZ+eJbt7MwdQ5ztPj+sDAIMXY3cbJtX1YU5wW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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////dkv+/Jf/xvv+BWv+JWP/vt//qpv/usv+EWv+eF//pof/wuf+MWP/vuf+aFv+8JP/AJv+bFv+dF/+2If/sq/+kGv/qpf/yv/+QAP/rqP/pov+qHP/ppP/po//wvP+DWv/rqv/qp/+PV//wuv/BJv+WAP/srf/tsf9/W//srv+5I//vtv+HWf9+W/+sHf/srP+4Iv+yIP+9JP+uHv/sqv+NAP+KWP+ZFf+mG/+FWv+6I/99W/+KAP/utv+HAP+TAP+GWf94AP+AW//tr/+hGf98XP+YFf/CJv+fGP90AP+NV//utf+gGP+zIP+vHv97AP/qpP+ZAP99AP+iGf/qqP+xH//us//sr/+1If+oG/+cAP9xAP+NWP+RVv+AWv+QVv+lG/+BAP+EAP+AAP+DAP+KWf/kn/+nHP/im/+5K/95XP+fAP/fl/+OV//48/+lGv/v5f+bZ/+iAP+sTv+VAP+nff/rrf+VX/+yNP/9/P+1YP/Zg//cj/+gcv+vWP/mo/+pAP/Ziv+5Nv/Nav+ZJ//CYf/Scf9+Vv/hxv/Uev+uKP/Be/+SV/+GRP/Lef+nAP+lAP+4Rv++TP+qPf+iQP+6Zf+2U/+RLf+CT/+rSP+rM/+yP//j2P/QhP/Hbf/EiP+9of/Qov+LWP/pq/+cNP++WP+bHv/Xxv/7+f/mz//Llv+YIf9/AP/XsP/Abv+jKv+xkf/wvf+RJP/Tqf+hIf/Ltf+YGf+4bv/r2P+Zef+MZv/17//Yuf9/D/+NOf/y6f+PXP/Hqf/LYf+Ua//Kr//dvf+tjP+GF/+5k//dl//oqP+hGP+zEf/Dsv+bCf+yF/+qCIIRSdkAAAAudFJOUwBPECkB9QUZ/vvORT563J85CuBxI2KJaeqkXS3uwK/VjMiouJo05byCWZeQk44pVEvm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', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAB1UExURUxpcd7z/////2G/8obU/XzP/ev3/v///////9Ts+5DV+obT//3+/////////////3nJ9/////j8//////////////3+/////////////2bA81y78bnk+33P/////1y78ZrY933Q/3nN/nDI+mbB9nfN/WO/9DEiPr4AAAAedFJOUwC0duG/4MIlk7W+yeABoUi79sxgFurYCjiAzPeo3ri31NoAAAH3SURBVHja7djbjpswFIXhgUyBpBgw5xy6aDqdvv8jVqlMekNsomobK13/NRef7C2k7TfG2HKqTZcbPEPaJunwMN1npfJFSQs46xovHHXUWFM/yluGBCvTjbilxvqENarAM5WimBhP1bWCllbjuTJBTIZnS+WmV+NeVO2m5XaH3sfRlJjrqsnSeY+5XAxTYK6a7CXy91TDlEyOTlr8X5PDdJhc3d2xFEa7b2kukp5ghbmTE7P3h/n6ack75vq4H8QQQwwxxBBDzP+KaccmXmgDTHqsYcknps00EAim7IBQMDEQDKZBOJhRh4MZOoSDibEJxv0s1ScP6gUw9umtLfvrqfaBKTC3d+zR8hilYarPdsy5Fse0WP3gUYljRpj05EwcU8KUuzHf/GE+LX1Mt774w1wtEUMMMcQQ8w8YlZZLy2uxAWbMOljyiRkTAGFg1BEIBTMUCAajCoSDOSIczIiAMHVAmBJ/03XyoNwPpsC9/c6yEuUeMINeuaPtanlMibnLZO/Ui2MamLrz5OgijolhSiZXlTgmgyn6sPTrz9R4xFwt/SSGGGKIIYYYYoghhhhiXhXTFqZ+K0w/C9q3FHNbYe6lxBBDzKtjItPlYOn91uHdVnXL/cUlMi1ivm8UMcQQQwwxxBBDzEthto4YYoghxiNGpcGkfgN3nEq/gvk4xwAAAABJRU5ErkJggg==', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAFrUExURUxpcfX6/vz+/1m8/////////1y9//D5/////////////////////////////////3/L/1m8/6Xb/7jdYP///////////////////////2TA/////8zr//f8/1q9/////////////////////7veY+LxvbndYMTidv///////7bi/////5XU/////1q9/////9fv/8jp/9jspP////j77v////X66bji/8vmiv///+j12f////n88v///7reYP3/+/r981m8/////7ndX7bY9GSn1l208Njv/9vq9ZjE4/7//+n0/P3/+rzb9fj8/+Xy/NHn+M7l+PD4/rna9cHf99Tr/PT65uPxv9/v+8fj+b3faGKq3Vu39l++9tzt+sTid8rlhWCu5ZLT/2vE/3u03Ge+7HfHzaXWgZTRndLpmd3usPr98obMtJzTkG3D3rDab+732dbroI6/4ZHB4qPX+qvP6G6s2KXL58rg8Y8rhXUAAABBdFJOUwD//vv88eHrFPl1k4jiEL7C9sH8Olx8A8Qb0iLP9OjVrmxh6+DH8MWcCsXdvyvsTdbNwajoL+PGwFDTzewo6vnNawH5mAAABPBJREFUeNrt3Plb2kgYwPEICSWgIOJdFLzrfbe77e72mXeIdqlYjSAeeGtdr957/PnrijAhJM6EXPtoPn/B95m8w+SHDJw5Ha2hVGdyQBxIdqZCix2ci1pTAigJ862cS9reQK3OnzkXdEVBWyro/LIIoGfA6cVph4f0udTifk070PQ7t6N5oBF/5ZwRaQK6Nx2cXToiQWIelF7OjQwOx4cHR+YWQKkxqBCxKO15KJUUQc/LkTgui48sgC4xmQo950xZbEzCQ4aGsdLwEDwo2bhY/6LMw8PmsEp8CCjm61ueYFiEhw3hGvHXQCGGg3Xs3wGg+OU3XHL5ZbNwgEsG3wLNgOGjvV8Emp/wnZ1NuLVyiEvmgErsN7aVG4FqIX6/LnBnkywNXaORrU5aqAuDN6GkvDRDwFLDMWsDBoO4ZAVKLnDJCLBoY55dEdR6nqm9xqqVKY/w8LNaPaAmttZ19vS8ag7EULW96/M4vvcV7nzBZecfUY1YoPlVdVFTxPjA9EzEUI3rOFYo3M3vASZu9pCG2ESP4bHpEoGYnUI19s5xtcPLwgWu8vkT0jI1C4TYxdG9AKLFj2rdYB30Gn8LEC8YDiRe0YI0fMQsPu8hTYoann5MhaAi4UcazjGTP5AmfwIqQhxNJ5ndXqThDLOJnyFNvWSKO6lnNXlKE0jLJ8zoGmmbIM8pSDsgybRPIerIsD8nYors1n7mvTSLzMXcIB2zZD8xj0wz0nRmdmVQM/PQkKOgGykc5+XVezuYTWG1TM4fI4VuciRQYgQoC6CKk2UgvmI2V6CwfIIqAlAmUGLIZvKTlgZQ2GRbmguo0nC2hO75yXaixEAFqshDlQJmcHAF1dak3SIqgQrjMcegUtiht2yC2ndJWjIfkwO1q8vDh3p2DgsrUCMrSVLRdEwetKzoA01rtzG7pmOWwRLvpFvF/1PMkhfjxXgxXowX48U86pjM/vaGSnZ7P+NKjC+X1rKdcSNmLa0t70JMZkMnJutCjJzWs+p8zKpey0bGhZnJ6cRsuzHAss7CyG7EwHuttcnJLv0CZ+QPag3eceDFeDFezOONaXhPJ2cciZFzaRYb+04clBtpRnkHXyHoZLtjfGl2W869dtLlnXshp/tg+8ysM7dkV22PWc2xL4ztMeDLs+Rk12WHjoMMnXdQejFejBfzWGLk/TW1rQaXYvKUl0wnY7Yox6KjMVmdmJwLMQ1pPb4nGkN/TE9+gCGv2bLv2o/eutq+7B0HXowX48V4MV7M041ZB0v8Y0nMD7DE35bEnMhgAfkvS2LQMVjgu2Q8hoeyGKn54QOTfH9KlZgYlPH1fENePH1nciedSiVF6jfk9K/rJen02+91+1ZOkXaNfV0f1bx3sCRZY6n63kGUEhOGsgRS2JWscIT+k4CyMPNFQV8vUjiyrKXXx3xlMMLrXLUqHplbnd2jovq6FR/hmIdGDCAbBETqyBB9UDETQ5aLzUBFn6HLgmPIcmPGrguGgRiLWbwuY0CEObqgAMRMwNJ5mQFCCBr+CwqxpRdZpLdFBIV2jsXoOCj5Es3dgZjJxxPobk74QGl8lGMyKYDthEmO0TQPNuOnOWYhsFmIMyDEg4140sJkWgDbCNOcQZPjYJPxSc6w0XYBbCC0j9rzBx505v+8g+jqi/JgGT7a18WZEmkLR5sE3mSG0BQNt0U4in8BHboVqzVO878AAAAASUVORK5CYII=', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAELUExURUxpcSnCS////8LuzCC/Q////xW8OhO8N////////zbGVhK7N////////////////////////////0PKYarnt/j9+Zriq9Lz2f///+P35////xK7N4bcmf///////////////////////////////7bqwf///////+v57lLNbf///////xS8OP///87w1Rm9PmbUfh2+QP///6fltf///////+368HvZkP///////5bhpf///xK7Nxq+Pr/tyfj9+fr++1LObZbip+778DfGV0vMZ1bPccnw0vT99inCSiPBRqXms2jVgCDAQxa9O0DJXtLz2fz//YLblonenOX46XHXh97241vQda7pu0zu198AAABBdFJOUwDL39TSxOTuBOzF/PLURTz4AXjCyvjG3BvmCffCaHK2mCKrMG7Pgebsv6VS6efZ2b/ViMoYX+7AMW/F///////+EpDIPQAABmZJREFUeNrlXGlTGksUFWRXkCWCEQQEYjTGJTFGzR2EMCAgKohE/f+/5PneC9U7PT3dZKYq56NQeKrvvecuvay4R2Y31ajWKuFkMJ5Ox4PJcKVWbaR2Myt/GLGNbC2ZBi7SyVp2I/aHiGTq5co6SLBeKdeXv0Qb1Tg4RLy6sUwmu3tBUEJwb3dJfnIeBhcIn5v3n+2dILhEcGfbLJXyR9DAx7I5OrFsHDQRzxoyVioJBpBMGaDy7ROIsHmcP00EQieRaLEYjZyEAonT/PEmiPDpm66FGgJ9K1wkImsWB2uRxEVBoIQNLVttcaN5v5T4bC3E50RpnxvnWxreEufYJh9YsxxgLZDnWCyecmuir8BgNRe1HCOaWwUGX2OGTPQhYCki8MGIqepHQOFdyHKB0DugcFRXzs7rtIG+WC7xhTbWumI2P6Qqp+85SwO571T9dajCZQdIlKKWFqIlILHjnEsWCLwPWdoIvQcCWZfrcha1DCB65mptDgFH+8BajOawO+71xt1hU/LFgzbgOHQUR2mnJrp9mY76Nvqu3R9NX26dmirtIKbqREwXIqL1uOlMgItJ50a0RpECEeF1qe4eEeIicJfeaAALMBj1BI6zSqifRItjYUJzi1zrPM1AitkT115FQo/Di/MUkRt/8NLzsDMARxh0hrxk/oPImgtrBmJdOFzuOy1wjFbnnsOGWJvUAoeJ4/7CsdGdDUqw7ziWwv0mvuXIYQqs73b7oIx+l/XighO3aeD6wsb0rxa4QOsXG+G43jQEfQCmMO0Q4y2v4BKvjOeE2pja8HsGvCc5YEz0DK7xzJjqAO9gZJF0xqicDRqwGQ08WxxRsSTmMLTz3rRAC60b2okxt0nGFtYwITqiH0ETj3SMhxbVNtuYxJTodXkEbTzSa1PCxIaeUZSxepcyUq8FBtDqUYbC6uIytTDY/CVHxZENRmBTMZXD5jfbokpzldKXZzCEZ0pvVgU1aAybkVH90SsYwyvVT2GTNjygzrFcTeUAMAgqM2D5+xwjExaFdbcFBtHqisI7jM13sd6eJN8Ho+hbBLCpAJoX76E/Bki1A8MgtS+APtibc8kEBaF0b4Nh2PeCgApm5p2SSGM6YBwdkdbMu6gqmpER4jvU9d7Zdac/oHx4SMgwmrRVf1sJpaW8yYWZvVhveHhqL1iaPEpQ/9vpUuC+twPQwfW8cRoTvzO4FbjwJZUj94nm5EmPS1MgnE9E47JPZcuKoHaYaXJBmBDWE1QSlf/yEqrDE0TloMdF7HxELZFAlXmMDGxi7j3S4yLWzhExSyeDO4v6NmLmMdDmInCaAfFpgag+azDHBVFr6nIRawRRgV7AHLU3Mkm+y3TMcWk+UyrMd5rkm+ShqRnR0U60uCwUzwnR66K5WgYrHzbXcMUzx+Un01zc4kqDMsIu1kgeWxhezHFhM9yLheEYay2v+IlpukQuMOWnpyssZZ+yKmOeC6s0p1jirvGDqW+Ki7T6TGCxXeGnbHuJXMDmJ+7KSpjbFzRNcmHR5PYIYUzzTvAiDwRoT65n2lwAL/dOMNULcjWvK5pePvzL9FWTC3S5qhdcQTUnXv+O+W3PcJ6G21pcYIzXwajyXEHZoIgXM5KG8KatwYUsaYooH0jIMFqF2Ei5qJNRMdPYIthIuSibScGB2w8WyUbKRdWBpaHNkkFspFwUQ1tF9MYWzUbKRU30VNLB1GLYSLkopQOVRDnosmykXFQSpVIJ0Wf+c0/ORaGEkBRXUp1V4CItrhqKZSdio85FXnYqFuSIjToXeUGu2KogNupc5K2KWhOH2KhzkTdxiu0tYqPORd7eKjb+iI06F3njrzoSQWzUuchHIurDIrf5SD4sUh2jITaqXORjNPUBI2KjykU+YFQfvSI2Slzko9e6xlAasVHgIhlKa4zrJ2MLjcBlkI/rNTcyHkd345/TiaGNDD9t8fhq88tX24J+2jD161ay95vsPj1+4P3BDJ8eWfH+MI9Pjzl5fwDMn0fjvD806P/jlN4fNPX+CK7fDyd7f2zb+wPtvj/q7/0lCO+vh/j94oz3V4q8v2zl+2to3l/QM391UffqoveXOv1/3dX7i8DeX5H2/vK4z6/Ve//ggPdPMfj+kQrvn+/w/mET/z/54v/HcPz/TBCLjNoDSpmlPy116expqcvM3/PoFvsc2RX9HNmV1nNk/wByvbW7x20JqAAAAABJRU5ErkJggg==', + + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAMAAACZHrEMAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADMUExURUxpcf9eXv////////////+IiP////96ev/9/f////9paf/7+//+/v////////+pqf/u7v9xcf+8vP+xsf/////////////////e3v9jY//29v////////////////////////////+amv+Tk/9+fv/q6v/MzP/k5P/9/f/Z2f/////////////////////////////////7+/////+iov////9ubv/m5v/////////y8v/////////////n5//////////w8P9cXP///wR8DtYAAABCdFJOUwD7BPgq0vLc6uju3O4Bw8TK5MDCGt/sP8L01PxnhF0x0XfJzNnHv8TlwXJuSCKsnKRU4Q3GyOjGudfPtJU4xpCwvqylB4sAAAdgSURBVHja5Vxpc+I4ELVh7IAd2+GwBwIYMIeHcEPIsTnL/f//09bsbkpHpLSxNOOa2vdtaojrlfr1oVZLRnF469XyefPgj8KoWo3Ckf+weV6u1p7xm1F5GW9GVRCiOtqMXyq/iYg3vHmyAYH9dDP89Uv0fRtBTkTb77+SyXoQwlkIB+tfpJPYhwLw44p+Kv0QCiLs66VzvKmDAuo3R32rMo5AEdG4osmBHkEDHnW4VnsHMlTd2TyYWNOGY5pOY2pNgvnMrYIMu7aqhZaS+OYubhtmJoDZuF24kki4VLJVW+jNtU5wl32Ju6BTE/q5wuKsIoFtZomZ5YCZzAQWi1ZFTTSAT7huOVluOK1r+IRBRZOJ/ppkZ2LylxZTDevA4crKCsC6Ag714dnBxeYNZGUFYfHGss8MOXtOfJetTAGtS84J9udw6feAQcfJlOB0gEGvn5/LGBj8sDJlWD+AwTj3unDCdTINcDgh93PqhbFRr5lpQpP97j6XH1XPMFF3mjTni06aLubzZnJhnmGqag6fGjI+7Tbk8d5q3h+ARe8wa07lbBou4+FDNO7WmeDiyFbkNr0ECWqvt12ZcJiQU28j+chnpCv5qJXayLapI7Ful5Gx/3WeYnLjvbhgCVzIATcQ//U9kzW/rBmYdTFFH2sdICcOLeEHmLVZfSGYiNaLyEYTF86AOxFZitZN1M4lGNcReMMVnIn7O4GK3TyyWdLxReDTgQ1nwxZk2AYdb5YSI9lUwBB4wwIKIf1sbqtHsRUbagcEohxwIaqxbX83WPbjuD8e7E62WDnTz5kBCHbCNEA7UpblYBO9802YdrwNBYSTjActvu8C9T5SgnGyHGzsb+J88lYHDr3gk4gp2TxWvqxhGMHI2dS/SbxyPwICsdmtr2qbY0TVdVlWjA3B6oSx6VDm5nsUN1S962TqbLyYM1bAG4pKtDfcylJ/SiKDChvjuGV1w6u4RX2lIqs0r7NMDxtjbzN65z38WlKDVkJavdrYrBkhu12phkN6aWJ5iFlcKLA5+kwslgeb2CDwpQsTQE2FTWUDFFrSpfGp5aT29lxOs0GNjUezsbkcTnUF1qL6biJYSQU2XF1yz1VHgprPC2WulAAosznSKp7IHCr0SIoUW9V0QQObtU15lMnHGj5dkuhUdfjf6mCzl2rYIRvG7X9WImlpxi7MAfSwoWLxgV2aGUlQ/9ppSH6acG4Netgc67IclZD/GHI5ssbSdkEXm5hSDbv4NS5bPklqBwtAFxvvJIuqpJJ4+icQ2JIlTEEfm5WsWiJSsH/mpxfyOyZAdm3QyIYEG5vJl3fkj1+YetPlORdhg7v3LStMpvokyWPBWUmNjbR6e5XsxjZkAXnK5iVoZfNGPpHRuIUPjAzDI0GwIfElW5ENH82mTF1Awr9nrMk/TPGmL/pW18EmFO8UzCpVRqwk+iVNnXdDC5utJOm4VLNmKfnNgQqNWtjEJD9J0tPSeIYPzJkoQycNLWzaZNfC6GEOH3g2NuL4OyXy9Qw9bIgfMH8dUL79IK7CEr5WVmdD8lMirj0fqJ9YYmfaGZrY7Ig7iWPIiYp5U7ElB4YmNgOxOqdU1AvFMW9BaVwTmzEhI456oUFqTkdcZ/QNTWz64iTokOhqkABoitNkbGhiE4v3uSZJAbnJqLPBycjMtODNpM6GmKkjMZNMwHOq5tHEZkk0IxFwHtdWZZPftX086Olhgwc9H08HJ0MTGx9NB7JEeUESpaGHjWcTQUgSpayEMMlZQ1sDG7bu7MpKCLy4ig0tbG7w4kpadpLfbA0tbN5J/0paduIFeWhoYRPhBbl0qzJl6k51NkS+YMm2KtJNXEY+9WYoseFxaco2cfLt7SvV2tfKJpVub+Ubf0IZ9oYGNvjGP19LZGRoYYO3ROTNog4Qp9PIJpU2i3K20U6eMhu8jZa7wRgbqmzwBmPu1mv9qMoGb73mb0pvDUU2eFMabdcT7BXZ4O16/CCDiH2txAY/yECPeCZAMDoqscGOeHIcfr0yoy7KbK7kh185jgXvbCDYeIps7AZyLIgcmLaAZqO4NgFyYIoeJadAwVfSzQI5SsYP2bsuUBip+FSGHbLj4wdTdohAId7g4wf4YEbSAxpbhcyADmbgIysBMKjHhXM4PrKCD/M0gcWpcH2DD/PgY048GxjtC9bF+JgTPgAW9IBD/U2yg7ERNugAGD4al9jwCeE2bvO3Gt8j7HwKH43DhwanLohgn3aD8c+hweVg5xPCCBtkaBAfp+ymUAiLDBmnLDZo2ioyaBpgg6ZFR3DvXuFMXDWKjuDqH05Oig4nlz+2Xf5Au/qofwcb9U8LjPorXIJ4rYEEl2mgegkCvx7CY9qcHXq8Tu6blqlwPUTp4ox5kTTn80WadhbzZjLtKl+cKf9KUfmXrf7Ea2jlX9Ar/+pi+Zc6y7/u+idfBC7/inT5l8fLv1Zf/oMD5T/F8Mc/UlH+8x3lP2xS/pMv5T+GU/4zQfrhnfeAkvf/eFqq/Ee38OfITh/PkZ2UnyP7G4kg3fhsBMqsAAAAAElFTkSuQmCC' +] + +const weekdayList = [ + 'data:image/png;base64,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', + 'data:image/png;base64,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', + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAYAAAFtKlp3AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA4KADAAQAAAABAAAA4AAAAACiWSQ0AABAAElEQVR4Ae1dB4AdRfmfu8sll15J7yEJVYqoSO9FEak2FBCwISCiiKggqKCCggiiwp8SmqCACooiRTqigkoLJJDecymXu1wv/+/3ffPNzu7bfW/f3buaN3f7ZubrZWZ3trx9xuQobW1t79K2ew4yRhPd+bT9IxttSRKSGNuiuBIqUZj209KXKoPWYETRvll4yWJtCyb+U2nMwkv/o22l1D5qZzEhB1K/1keahd82pnGLMc207TYvhIrtvPV1Y5os/R73hkg0Or5C9uovlTetWdP6zviWtlZz1oYmUUZCrhs9zjS3tpjW1lbT0tJigEfdSnUzaoJfWT7a0Z/X3Mb46/f9U1NpSVk5tEMphxSuA7C6ftHidWbR+DZDfwC1bCUBsqHvNosHXasHN801RC8b0xL+S88ezcogn2AbQzl8bOvNM0DY2moVegL+9/Z8p1DxWoPn9VffyjBQ8Z976jDoQxkZUsjKYLG1XL0zLbWmvF85K2SP1DNQWg+p6bzb3NwkcItnVfajn9/R8Gh9YUs/s6qS8mgqzB47z+BcqQKuKRKgxbbDrrPNMa8toLgZM33OVM4taKIlpFCFkXls4dSJk8yk8RPcIFG8q9VDqqF0+x1nsiIMJqWJKoyEtJUZMPLaaMPI49r2te3wIToYCX4oB1+md1Ae8nBMi1hYVtLPtJUScwkxk9LWUhHSWgaBJIxDaYUDb5U4Ay0eCppakJKghBTu2HQwY+ZM2zGg6GBrwdL5IQmhkIYwndTpWQqPPfsE9nPBkoVG26h/dsf1Wf1X2jiiUA7jCAD7+lUXhVDnn3ou98++/FyzYu1K89CND3L/3B+cb8aPGR+ijXbaHVJ4AWVlpWXO+6Wrlplvf/GbUR2hfk6Fy1YvY4afXfwTc+J5Hw8xo9NCR5B8StaQIlTwREPWRPtI/6B/1dd/aHaYOTcffeGJn4bzj794gMnUGHT23XMfc9FZdPClkm3AAM8HYNoN8X5IJ2lnTHyVmTOHsKqQJVZh0o43X8Wr1q/IYAkNGloEbqbgjli4jI7eVEYMHZnBkAYAg6tqNjvSWVPmVFJnDAAZiyjNo6PuYINGdd3sqTtgRciLKF/hOoJt10H52djnkPKFTiEoKRTYL63OxtUeHCkK6UmUQQbkPFfwmYk+53lIomZizlgjJFmaD21oWhDjVjCjOMtjzhWEIvgMaGPPQ+h8ISjOw5ASxWc5V1ASV+c4D9HosEJf2e2V33TnDJ+rpHMbnMjQucW1Yya75WL0nALnHFf2p/Fmab/S2MiLLZxz/HL/v6pNm0lpeOV9x4aLaUVGqzKsM6nW8wTUvFoDxsOToQyn4R1e5lt+yPGW+SOguZSY3qsm8DLPEj/z75dCQiDUx0MY1qGoYYxv3NJ3lhOUphmMjhQMmhcBu2vjt3mk4ATEFXsyU9XaTEIh2pBSwfOJCvWxRmVGe5aF85CyfmXWOCfJNbAv5dMpOnKXOIvJsn333Muc8sq/CV1qdt95LwmlesSWex4T/NTVm83Gyk3s8bQ5U0QhW+J0ccPtvNkDeMGeQFibef9ue8gAIgUtjOO9kfPUeUyN0eNGmZHbjeAlRwvRQ15cCeYhEahSCRcpJ0YEknNkax0ogGfFJyh0Ho5umc5eYRXWVkany1Dmzi3IYlhNcB6tJIzxMJK9sXg2mviQV2tgdJHlFO7QeDBHQJcCceHIF1a9dYtZXbkyxBaENATuvE7PUegv95LacXGY/+5bWZeKWT08/tyTncwlK5e4tjZgSGNTo3azKlKiRIVY6GInffw5J5vrvnWNOe+KC8xx55xkJo6dyLxQ9tkTTjMnfeUTrr/91Fnmop9+S2XH1okKlRrDesbk6dzFFPjVZTcoytz24Dxu19XXcX3NN682P/7alQ4f13DTIg6ZC8ZRIIMwd9OW1Ar9cwkVroMJuB1mzOUcDho4SNGxNe2wZR+k69HOmPgqE0f9nDmMNTMlsHIzlrrhAoVnAzR94szFqNVTtDtacD4ZLaE1ja+sX1k/M2TQ0Ch9qv7m6k0hOj+kIYWg8pWGuNrZUWVgRw5ZITo6eNDujKK6nEIo6Sylqgw6QgoBSFNyGFZHCrJPxixKCi071TQkpRdAsZYs9gE1UOnaU+cpe0IO+uQMwriszEt+9oxpXHeAaWmgtbHddr2pmQZF6r1zovx2yvaHpsrOGKJJjt297nJyZWsZrxFpDfi5Kko+O0aHe9Qt9VxfN3q8XdzSWpFCBHpZ7AZ9vX6NCGJhC7wsfIme+lcOnCYyW8Oyz2/C+QbktJndh++/9Mydv0mEmcV31EWbmPYl0ud88nsrv0em15aygVgCk0UQjj++RaTZY+fIGOozFjS8WfpoX6g4ACLN0pNy9BNlt/W3ctvMy5uemvbvZ5+ifqv53l63rxk7aCKdnEoh3W3qpHOQUCHn+LyU7iOIoRJl6EZ/YxUdCJroEqkOTUTaZpBPSTRrJDSOX0cBiZPsUdaYjvrVVXSfbARdQoqR3VYykuk0i2QK83/7n6eyczcf9DhJkELy2EneyVD7BUWg/kvlr9aJQs2E1Cr4tQVvS5T19LOpms59ccOvzrz8+qvWKfBYw20GlT+QHTiGzIF+6eIVibLffWuxlR0EDrKyFd2LftAnWmeWjGUjiFnmB5TLhv77dn2POWUlXRrTG4t0fl3Z3GxOqaLbbzvtwjw+PQ9x8NOftlWu9HGeJ/K3nzvDHPMqBdCTvY4uh3z43QYzfe5Uy6/zNrtz8Il3MmRMiPL29ReJQ9YgTHzfYERaDQUcmQn1lT7Kjz47EqGP8lM/OJkFj2Y6zO8nBW1/iKKPeejPQcC4iNE24lY4HKCBQY4mGOedXXeYn2RxwDgg4lxUvzU1Z5XoIGeMFKBw2w4x+On6gGmfnbd9tG0/g9+X105+yExbYh3cr/6MEL+/gg0hurkTd2kkapLuZKLwPtMvOhhNZUNjA5+96xm9jwfs1gdv90GONo4+RJilo5eX2iMj7wwO6D/AmTJ/0Vuurcr/8PhDDuY3cGmjO0rsTiaXIT/86g/Mxdd+x1z0k2+5G9A+D5yFQ2+886YPdm0NhgNQ470772m+++XvMCgO79Pm026XgzvP3imkQw2KXpy6+Box2M+eT6tCAHv5jVe062rlwxDNdY3QMUUaeQ9R5T/tuM9wUw2eM30299UohSt9tAZeN8XV1oef2lN4R+p2O3jiEceH9P7kGz92/VHDR7n2zd//lWujMXpEgAshqDOoInylAwG44e5ftjt7kB+7Fo1e6uqsA/0/X/uXmTl5hhkzkm/nR/01T/zj7+bQvQ/OgCsgeqCP2pm4FlUBnV2/f9f3ZVWRzTkwYpGfq+gQpfOToJSWlL4b9Ap/8dKX3ZH22g25n2Zw12RoAS0ra6sxOkwBpsdD8ro30BHjs/GuXLfcbK2jM/9IiRuivoNLiH6azxPnpI/vKW2aa+5RGc+mcoI3OweBoCR+iKo/e0TcXLF2+dO19TUHRuHd3ccDR3S3KWMPhZ2L2uYaCkBNji6majravazws0e+zbqT8WE41Z+BKKAQ4tMhZM/rYChqWVhQ8yjTf6CtlrabCyqYhHWm7Ky2kuLTaEssWZlzIEnoaYmCCZGDveNo0lGfzQAP96l8tXWW7NidTNQ4Uo5VMD+xGMV1Y/9xmniH59Ifu5MBEznVXzNC3Xjn1v/+7+atC2tNw/LwA/e5tKbB55Z9mGdfosTYDBIjnp2oSOQCYuElcv8AN2CwtdH2ntuysqRGtk/22ZTRX0Z1ZGQQUSGi7M69c+kWw7e26KZLG936x9aCGzBbN0QV5N1vv+wbyfTno/pCGSQCumVEz+FFSmXDiuUPV/18il5tPmtzuc1ePTkHxyh7dDdoDX2n5b4RYxMv5Su/uxRPsQTMvylzxcCZsbKX0t2ra1pwYRmX71vNDfs+ErHSdQ+jTD6hPXfJghjHEjDDuXn0LCnhpuBKNXnDCtgpZJAzB+eoTRs9Xid4SMdAwD9qdNFB7fUB8eFMgYDFyO5HD1vS03uO/+znjmIV3rOpLJ8+HqfNJc53aK1SaH1H5cXcdEaJjTIcrVOmlYan12ajyYmQ8VHn1Mm4GkPdk+e3AzvEEPS/8MwRaq6rCa6WSsaoH1wLtGR3bvgWRxe0/Mcs1AIvMqdGcNvOQTgLaiufecHPGwRrG3Wkjy7h08gm7hD/558+gqWxiMiHZpAmU1Be3fL02yyEQOCEMWyk7YtznpO4G0uO1tZWCy3zQILl5zroU1fk+WZpEDhwmbIb6rayPPCiEQQN7VY3JBkPkrY2Pkaqgwrn+n/Nj86FAKJiQQCywxbGDvJcQeYwB61B5KS4wQqECzxoqSzbh0SWqnjbzyrbyrASQ/zfevFUeSwQyqT8DVWsg+wcIZ2xrFyMXL9po8xBnSvecH21iZ4E5LgETkGJkwcDbR+13PML8FWb6VY4H268HY2dCq/UcojVEicH8lHWN6yKXYwkOsimWGNd9EnQmBEjzakrVwRz0GWvzdxbT19/xB87Ejjp8xPS0C1NeMWGKQ710OFDzPGv0aJI57cn+7YN2IsSC/jBK/8sI9tHrINgEBks0fFrDHGw/P5GuiaihtDVLdyfp4tVxAcey89t6TMMzlvLVL6FiL9ESt96NhctoR26Jxv35/FsJCQxv1dDbrbijoM+EZvkGQocG04IgPfZYy/zwn/+bU7hdQtEiJjddtqJ6XLxszzPUe3D+Lm7bG/eeH2hOWYBDVPoA5LKtNmTqU1/FqCBFGzyZ7yDJAVyZI5AqEiVmtWYvXffUx4OIEp9XJ9XKGxEAj9LFX6Y5OR58oGdvdMsxvF1T1Ltr3QCPrRyl0QHNXZwDYbwxu2gD/GwTXAaBOnTJ9DiEvj5DzjBi3O2DxwQoLd4aknf4hy/R8sEOT6yzEFR6hxjhVaNGmlh0MF0Yh2r1L7jtzhIYHoYqvwqj520eGo7GVY+vAcsn5LgIASJGDUCfQZBibSYRhQGSqWlFJoHBED5gxpiVI8arX2V6GqPX2nT1LEOOiXWKr8PhW6zCB8PLPdhEBq0adRR8x/XNLesJMBQNFg+vcgL8ErLDCk+YufgmJYZzKoG4ev9hr5+AzX6BBIMb+Xw4MEgIILjm38AZ4fsQ0JCRhCiheF01iM1+o5fdiqMIRjbgBp/YGMrUGe+KkCg4c9YB/U1Akoaveav8O6u09xaiB2i3W14IfUXHSxkNLtDVjGD3RH1QurMO4P66MfVt14TsuPk8z/Jj4WEgNRR+ig8n77KWLluVT5sTJu3g6rh2X8/p02u8QxbTyx5O3jT9zIuHof8+sQFp7h+NMsO0YWN2AN9Nv3jx4zLQF877zoHq7XfmARAs7zb3Pc4PBqLli8y5//w6wzbY8fdzeXnXhrC47QLXwFF0SenQgR5dPJ2ME723196Og7sYN//ymWujfnkl//M/y/PU98RdQ50UXqfN0077yHqC73xN7/2u+bcT5/NfTx+lasMGzLMnHXyGY7sc5d8kdv6RV104PS8H93iaNrTaJeDF5x+Puv667OPmv++9T9u47u1h+9zGLf/9vxjsbbc/+iDDn7XVbebYw8+xpz9SXFs7YZ1jNOvPuvrlEYOa98rYFRRu4boQe8/wFxz+89YxqU/v5zr39/wO5XJ9c/vvIHrQRXB1Tz/+dFcQ2+n7XcMyWtvp10ZTKPs8RefZLI7fnybI/eddcBObrQrg9lsuv+6e90X3kHXv7y/Iz/usI+aZ1+WW3j+TgXnfHTLy9Gh8fS/njH6RrAQIs9Oux380IFHm0ee/gur+9hRsktHx3coasvsads7UHSITp80zfz829ea/ffajw8veHPA2d87z6ykt491pLR7iH7x459zej997KdcO1fj2m/+JJYEzqFceMYFDr9izQp79u9AeTd4XNAQ4YsByh09U+6MM/rV61fTAX8xv8RM9fr1m+/O5yeAkdmkkstOGvbxX85KElhI+ITtJhhsSWWnWT18L5pkeFfD2z0Hu9rQ9urrtQ7WNdSl8jmVg9HJnEpyJxMtX7MklYZ4B0tK1kS5e5KTcbbQnj76CP48+KCHiYuo/SPfqTghih88cAi/fFj7XVHX05Csbww9KxFSGz2U4RABAv5AI3osrG+onb9szdLC7KuhoBNL1DmoUgf9ITrft6FiwKAdx40a/6IP64ntOOfITrcAdhmE8dEsqkPZhqvSdHVNA7B29tQdw192EiPwBgSXuJCDwCc52dUOtFefDk3lz3AQiN7qZNQ5+OJSiY6WOELF9dD6niSbYzPoO0HZjH2G1KfpxvYT5Nhh3ag/rJqCdRmGf8pSRXTjwxK6p0d29Eq7CxItcn5VyoTlIvtIQQxKKaS32J1zF5PS3wwyCgBuNrn1RAZB+wF3Eis9eNhpBfeOOsPug2l3+FShre5QAilJo8mgd2jjNyMX2rhtRN4VlNjvtNfXvBNIScMM+HR7FTLf6t88ZWrePMjgexCG1hBYR+DJXq4Jtusv6aSvtKJDOjqDuWvsHkYJpee605VUCaSk4SsVyWfS6XRRrqpXmkVXTaJn3ShZlChs+HkObXMCsSgEjjK6+13laUV3Kl332P0AJTK4HZLgYM4EUvJCF/QT5GSAW0xzw+ubX1i6rnHZgPq2LQNISMmxW1aN41mHRHHSbM3fSELbgxNsUcXo6peH7chfJYACmCLWiEl49pCLrYKXPgidwwsVP3yNJsiZxbqmHuJJSS4YX9yQz7PKGvKy+82SIdVPlk+u7V/Sv2l4+aiG9487tHzGiB2mivC8P+dRIk9P4kpMIAXrCWI6JInRh29traq8f+MPx0iAyWmSiifUUTsYMXyuir4xEk2W62PWeQmk9vrSUnPPKHmPJ/SxLAotjA49jOoSgcRZ/VGY8ntwlkny2Fbg8ReDv3Lg9LzsXkn3/K6S3If8d7EgB7YftOu6r+5xFb7ql7aUUSLtCAtYYm98kiKrPiCMa9234QfN9W01/Yh8jOKZkdmphQ7atDGcv+ShifKThV2pwrUmfAl/ExFCWAzrYLHhQLN0ViAqVafQe/oZwNIg0aJRa08I/EBzKPK1mw8RNrTsf1gDZC6o+d/YLz17JJnaZr6267VLZo/cebpoT/ykX3Bo25+S+JxPkZFAIrKh8MnC7YfX37hhU+lyrED7KTGHwbJKW3gAUhr5lo6XoLhjoNu1IoH0FSjwWwFsGs/qwB5GgYZAarq0CQBawC058Nymj0BmGG9JuXK64xIYPXb7duPRdHvHVfSLBU4/bBIQ11e/ev50KLzpwMcAxQ4mqTxLMvakJP5HCULX0gj5R0Uk1fg+KJIHY9xujInJaIJhE+ts2wqiHs0yrDRp069bcd9+gc7hLJ6+XNcGOlcgQWSqnpz6+UsAIiDEy2kUWYH4sGxEkn0BgbPNt9Vvw+aI3RwGSJGi8tR2QJ18S0M/WFPy0Lt3LrDdpOoVHxFKICGO9ZHRtn6ZV+E8VGzS1Bg2kAjYdJ4Bkuhn/vWSJI6/Tek5zMm0zocS22TqamvMlhp8VzYItuqBDWH9YlWGfuJFoulf0oYGFa6sfeDRg4vK1/oN/BAo7MrD7sa6WvqOr9yVZdkkH7UmkfWj5+lXfQ8vnzdnefWirA/MEC0FU4pLIAEvV2BcPb/6xbcZjkCoQbZGaKjpShS/tRbv96CiCcJ3fvU78v4s5CDpyG40dXQsWbB4EaTDXVdC8hkD/QFFCA+4s1NEMB4yLZx5LT+ksD7qN9TTmRMAedpdS8+4rl62xslniVY+LPD1sm4AvfK9lz8/yevGNd+vQP8YeJoC4+rXGp+Yxct03CtFTNgzqcU2DSLhqbBhdoTpDaz1TXVmO/raE5+8u2MIHet4AaPHRqqt7Cu22m/0g4WK009tC7LBYLTolGaAp5ZPCzT3LVADiK5rK4M9HK2t32rG9YNfsJU2Pd4l2H3xKhqEkMcb4sLdQL4iJVSCbOenm4HEPy2bjHqzlZONF08HjqqnEiQYGsLbY9DAiv4civPXrDO3VFXZ3VEw04IRTrtSuE3/p2yuoIQZs/PsOQzTNATyERi34yMW+6f2kTE+HkJht/KDWs8b0Q7w0ka/vD+5TEE+i97J/otV9IhuZA8RZ/eH32lguyfPnOjpR2RVv61tH5iOFDcGyDlYnlj4NSSsVEiU3AUFYATISnALDC+QC5csMes24tckpUyg08JDBrSaUXQEeocm3l8a/R2CMXvuvCs0hk/ArZnx+jlMLDxOP1iZj7z2+V0ifbwdfNC/avkaU7V5i5ptJvcvNUcO62fG0O8iv13fYn5fRbPSKzPmTqMkSiQ0PkDH6ffYQs3oa95DSOrQSpRzlzqB+E1CMkEcJ9ucgR4MzmpggIdw9OVNBzABo15o/vfWm6a+ATcswmXqhIlmzOjRTo4EAJKl8KxS/TYRrJNgbejL10hZD+u3OlUAz0ASpXbGyYeuWDzZvuSdZaaxkfYU1iCp2syYsaPM0FHDiI/2CgR0/ifot+4kVmkTGB7yieLYIzJFzQWhbZNTZDX3nNMsx8KAAQ0VTToGz3vmyiNFHEBfFtGJyEC+02vlWAybwDpVP2YNJxXaPJsi+hkLGGjtn4OhQcX5YmUr5bTtp1j7ZPfNPpEoloPBwzJZAsGsHDSop/6jV6iSPoGkUeJAprLB1jjArTVipwQOQAmOIAUnMEvugoQ+8E6+JdAgqgKHZ9mgZ6mKlppgFsx4oRD5ILDWsQblRwd0Tj5j0fe4wctdkSD0gleZgo7TrxRWcAGr1AkUZ2AczJRhTp/slHOUcGJqSRAoIteRx1jw0wxkOhHDMtl5QBXPtZVPcPzjI0M/2yDcPj6wKaKfBQX2QQ1oRYKnHxDPPmj35RMT0MzndFFP7XMwEqP+s4gCf6RPoHMRVsNQquGgg4vD6HJAgKfi8MwgMMcPvMqylMwGGOH4jMPDg1vEevqtXNXDNMrj22fpIAC0rgtaYeLatamBBAW2MkZowQ8cFU1UABEYy/f0C3XhP1MnEKqDkQRzyQX8IwA2GlyL14Inngw8YGDkLWgzROUAB7mWX2mdfsaBBmSgs23mICaGeHiVa2uRR3hLGdYl3GGY0Ab6RS/zq37IcvJVRhgG+kKX1Ancr+6MrLoTnrHNyrMtI6Nv5G9vLPwT+fbKKPJ1YwSKCezG4BdCdTGBhYhiN8ooJrAbg18I1cUEFiKK3Sgj9Sq0vTbe+8hvzT1/ujfE/oOvXE6X0nYNwfzOo889Zn5xzy8Z9Icb7jel9HBTUvnRzVfT+0xfDKHvu+ZuM9B7T0YI2UmduJ8o++VlN5hJYyd2kkYRmxyZAqn9xIc+liHpkp9flgHzAZo8wPz34/g02o4mD/CuTp7a0h11pycQTh2x7+Eh3/wT3hCCOudd8dUoyPz9pacyYAC8uuC1DPgvv3t9BqwvA7okgeec8qWMGF53R2ag6+iVXUtWLs2gvXbezzNgAFxy3WUZ8Enjcj2NkMHSqwGdfgzU6Oy50x7mlTfd03D824FfOfVcRXP9ce+lciEEdb521UXmp96PNAIfncnfP+8ygGML3ualL7yKJSAgbLzsnEti0es2rjdnfecLsTgAr/zq9xNxnYnokhkIB+IC8+6yRc63PzwefqJxl9k7myGDhjj8wiULQwnwX7anRLvtEH7BHuCY6Xh7Uq7kgRYDDLTVW2vQdeUJer9WtuSB8FvXxifeCemkRpfNQNg/beJUs3TVMufKN356sXnguvu4f+uD8xwcDR3R/qurMIv0XV3Rlwl+5TPnhPjRqaHHEvEroX7B6herYL/4OgA/5cJTnR70r7NvgENbi9qh/T8+8bC55YHbtNtldZcm8Prv/Cz0psWmJjzERN+ZsC8tVK9P+cgntWl2nbOLeW3B667/Z3qP2fZTZ7m+Ng794CHadPWtD9zu2tp49e3XQjYoPJ8a7z2LFv2R4Si8s/tdmkA4M2TQYJoZW51fV9/yU6MvZVTgx48+WZvmivO/Fwr4r++72ZSV0dNQXvET7oHNpi2b/W5ebSyokk5Hyvv1jG+9waEuT+AdP7rNnHBecG6orzHU6F79jR9p09XHHXas8X/hHW/884ufcB8+c8qMjN8Hj+76fPq07VXteE9yWtn50nXZIkYN69evX+KVFTzsNHc6ngMNlzNOOD0M8HpH7hc+x/RQ5jPHnuJ3uY3j3er1a0Lw6+/6Bc9y4PDL27nKW4ve5uOrT3fFr3/od7uszffPoY2W5HLbOUF1rvcZ5XNDd8PmDeaz3/pchqZsl83wItGf3iavm/UZc80oPPN53JdzftHVF2m+QK/U/DC9N1QLVrD+S4UVnqvOdikt1w3dXPHU50K7fAbC6dEj8M20cMHrM7Nd8zzwfQeEGaj33p33zIBFAfgRKyT5wet/a0YOHxlFu36/sn7m15ffyLR+8kCAl71Cxu477Obo/cbxhx9nfvy1K31Ql7W7ZQZ2mXc9WFGvnoE9OK69zrRu2YX2uih1gsG1DbUFkeonsDq7xOzvLtlYFXxpJbucIhYRqKreVJBA+Al8LpvEwRWDX86Gr9y83tTUha8hZqPflnG5VvT5xMZfxODW8cpszGkV51oCZ9PRl3FVNZvpqtPqnC5W9K94buqEGZnX6zxOPY1wCQQu17lgS2tL5bvLF4zx5GRtlvfrb6ZPnJnx4xBZmfoYsrp2C104yDovQh7TtYykd/X6dFMogSsACCUQgFxJJJJWmon+rhdsxVKACNA13tdmTZ6T/LCQ6Ai9BDYugQOILud70VZXrnyKzmUOKoDdRREUgZSHndU080JPSWUkUKOZYiYyKe1W19FudazyFev0EUg541Qg3iudcXE3MYHgoiQ+T9U+KiFNXVO75eXVlasmEu+ENPTbEo1dnCCe+R6Cyil5eH1HRsmaQKWmZOAcMXi+QRHFurMjcAglLvxIQURjqpFAQobShmRfHeEvdgsfAdwVwoxDyZo8qE6VQLWRBH6DxdIHwYKfG1OCYt3eCODksL+NbSnVsbvLOOF5JdAXQEqutQpdRfjTaFvu0xXbGRGYRxCcx/llInXkAaEM8h4IoGPqzrT9mrYXaauhbTFtD9F2IW2pjsvd4RbZ1ivtLkisyHm8onIDbWnLjwuiuINCyNheaXcH3Q6zUxDwKyztLZkPfIbFd1qPDO6VdhcsIBSAg9ubtQhfl96r6q12FyxxEERB+HAkCR3tpl6ZdcSR3mZ3pywYKAh42ijr/cN2BhkvKMMqrrMK4nF6JwhvpVVm+GnkAikpSAIpYePJnjtoO7xAdvVlMXgX8yWU0J8WwskOJZAS9z0YUwhDtlEZVeT39pTMdh/j25VASty3SPEVHQp647p3zIr/22KattCj2K2VZthui82EUw7ukMyuYO4cuzErR1AiG/N1Ia8EUuKGkoIt+SqJ0Debdy4tpV9pKQ1+7IO+68AvP6d68MxnzYwL94/w9IRuV9h9FyXxM/k4mzqBlLwvkmB5dUQ+GsK0bWbhJaSTrtfiheH8EnGq/TZ+fqffkJfMTtd9IMzarb2utLuBkliR1ttU10IpefeTwI4mz1Dy6GFImzwkit8ATzV+tQF9rRs3fMDUr1yY1olOp+tauwdQvFHwZETOkjOBJAg3dU/MKSknQQse0xgcShSSxonELLRthlFC37hgek6RXULQbXbXU+wH5nIx6y6UBNxGAk7PJSQOv6ZuybK3a/7VVNtWNaCprbF8p/qqiu0bqoe731zQxIV+gwFJpGTaxP5u7P5r5a2hpIHfy8kVOqxS3xOKjr7MnBF4XyiRODx5ye/6tF/AAjdLgEwRJbQClR0BC2oze5U0Vuxe0pKX3Tf033EtjhOD+g1vmD5kTsN+k4+eVl5SnmpGif3BJ+1Os+YoEUnJO5TEPB6Iyt16vPKupcvbXpuGqLiXo1JQ0D6qtr+Z0mR3lUgS/2iGTRhmnx4PtSb8z8fSb0Xij15mzkG30WaYtqkmW9m4kE77swFIlcJBFyTOtoHXl6VbHl/+aQMmmjml/UmM2qoDDD7E2/1Vevm5yvRjMah0aMs5u/xg1ZQh9Ob09CXrRYDYb+iSo9i1pk7eI+t/tW6dWYwHm6bBYA0Ngmdja0p112hnF2XFBoVqTZrDITDyAyOcOOpxkjCsIdAK5TbhUNDGaGTtwHMn0O9oCYc/KRG8la948JTpcdnZlsZukh6jf2vLlrIf/ffcKdB+5fvurBwxYEyaZ2xLyQ48SogJlVGSjoEbMihjADR2m/CDIDZ5ElyPDnHkcKGREQiMaG+Lw7Ms8FJybEA88YL1EsKBBzkK6/b1U5vtcGg7DkQ+s3h4ocKnZ6Nvr7Zj7RblIhmDBC1ff5u5+J+fHnPdfy4Of1WYqWI/DiEZsU/+ZSSQCPcjETl/lXpN/eIld274djnUud00RjAix0Vri8dvKsBp3XWGAkM4hXvHQE+CDXYQBA0KVJXwcFetykW1bYbsc0lSOgjA6IAcKx+sRMcU7bCbhYHbqgjpVyDV86tfGf+NFz5O++JUZW0cVUYCiejZOEIftqW5cs3ftt40HTDYqMcYtc05zxHRoOiuByMaCaNaRy+Sp20k2bYloJafOjYeLplEmKDf0vr6lRhyVBD4qY1jrKL9WvTnbzfLhCAIoOIGm9Xr9BO+qmlTv/OfO56U5C4kZ98oVSiBRLBHlCCm3/bHqp+O5ySRJbARA5j71BYbGQCgc0J2RbATAaGE6S7IS5jgCG9no85mle8yCD0kG39OP/cITjgu0O3pV/uUACgtTr4CqAZaSGBvfnazmEAAx8DptzpYP2jIgbqWmtIf/uu8NIetjG+QhRJI4p6w8hOruzd+W2PANGyYNYRdZq8l9OyDRsotWuwM9BMYTaidocJKskgQEiVSgxqGOP1iDZugFCH9LCCQwDQkWP7EXciyLaoIg3477Bb9VjbLIHHQzzJRo4h8tp96i7a+Ofrtjf9bzKgsH0QfOh2JJjD5LQAk9OWqxxbQ7pJNgQ4OEH9SW323ypVIg9IWOlHHbpI2B8Mo9/sWDx1WcEQ8a0ml39qnlTUvqKKGBxhpuWMz2cR7C9/OZLud/yov5IDX8Zo/efVrM5Q8S/1bH+cSSIHKeS/vzeYn52BcoaheLCBckDkYQqFxwQEcx8iqLXTnhGed53RoIaMBsnii3VJdzQsklg+FJMfpYiswsH39YhmTenjoD2Bh+7D/92UylojV/q01uPoH29LbXVtT58WHxqnqhxGEYVvwgSzTpvqBfXTJ7+SXUtGJL6GfyXUJJNofxNMLdEPDqpW6WoNCHmFsGFtljcBvElmDrGGg3YzkRZOlixatdTZqTQFbsIR+fpX4UbjGwcq24/UjPEFAwBPiZ5x+gJaoPfki08KJrKaGXgnGybODC221V2u1V2uyG783iML62SJpM0wQQeKsfoBR7l/y67nSSvfpJ/D92Vieqr57lAYDdHCeQxt8CIT7gcGgXbBkMX0GM4uDAod18wPjHw9Zj+iKjtQM/RgwYhFUusTZjhtw3BcgGJhD/dJaaOiHH1cgEe23W9VAix16ohAIjRMT5fdBdr5XOfwEKiy2ri3dxBdWnZNsgLXCmgfGuCA2NDbQSsuuPPWYEp2RCtcRj8BRqaMfiQyd5+mIVf0cGc4e0zv7qOdswW4SWJtktMVy+XTnaYCrfGo3NdAvaTfTA9OwSe1LaXdjfUOgnxSLJrFJ9NOnp4vUufLUsodT70ZTJ9BJp0bgJAyjPxwfUKyVikdgtP1OA92M4JmG3RHRY/bp6PbbbjayRP4laSdfQE4mMgL5qsOiXZ+Pj2yfGObipQ1rH45RfhGZAnlrq92NcuLS293U2MwDT+KTrN/Xq+1/rX8q62KS6Nx6JXUCo4GCYZIxChOPcO2LGY6ecCgPV9ONfCSON+88EIHRRHINGmO2is9m4ACa+DbQLlF2JgX60SIGLxFOP8IIesZZoaRR8bAdFnJfpFAPRWgfWEePq+Rhd7W9KIAfUJYYWf0sL1O/6Ap/rq5bOioMyehNVEjqBCqDGEU9jhf1KDASHOuyH0QhMkMHD2H2dc30yAfvIpEkzETaMPsixz1E9NxquSndfwBdrQvJtJawfkLhz+I5PEGMoJ15geckch88QWH7FeIh0Bw0SGxY02j3HpzI7HafvpR2uVTK+5eL2aQb5vEgAYLanhpAMkpta3VZBjAMaH8Cw3LQs+YkWIUAz5k+k9m+um4jkdsAYOZx8tDXhIqQ++r7mQZq6szI0AkyIDkaEcUMVw5OL3dsjhUhMOIPJd9iVfyEyXhakt4o/PbyVHbP29Bs6u0MtKKggZtx+pUmWtPX1kNeRPHU52vQgKeegTxSYYX8O8N09waEjGZRp4ZjB1UxoL97E+Epa7eYNc20C+Xjnk0mZqB19Cq6b/gQJRBllzlzSbycRyIMHGyywbVBRHiBC57boLXyoF9h1HBwhfnHaSuZTQEes7+EfjUG8GPeXGlWNtAeJMHuS9c0m99uIn+oTJk52elJ0s+EBfiIvR8YJ5cddsFCCO0CgkxFAZ6NhenUVjxHg3p777YH/UTOyyA1X9vYwPWRA9rMbBpLm1vKzNONpWY5PaimZfSIkaZfOXZDKp9maS79Fh+nX2GcWtgaohX71WZJJPlHf3N2mmneen0hmdVmvrBILlceO6LczK0oMZuaWsxjW1rNkkayzZYhw4eYsn5IusrkFsYOFd6nOJ8sS4cqN1XJQYlUgjjc93OrNSLlP9TEhTYKRHCL4UwheBBRAf8//itJZEDCxzi6zzlxHO2+rDw1LVY/yVC8X7N2tsPaF7WTZTPQ2e344RHhnX7aLb795jtha8Ul9Zxxw0cON6PGjrDyRAaLUSp0qKge7iR8FPx35KEa2dYgWlt0UCFKUhzC9qmiwY5YcL337nuatevXm8Ur6bgSKRUDBpgdZ82h3ZY4qSJBlqg/IsMFx2OWcS+EDq9CUSsB7MQxDH0qTgTZM2fn7c3mys1m3RpalVq8UNF3o2nBMnnGRKZ38pWZaPFjzhoWh1fmDtapd6HQozaFWmQZjMLuUwv6Pq0YTXgLHEszbDt+moDoKGBCHeySmd7Ssix4j12eKvBbqh+jxJZc+sUeIoZJll86ASwsC5pLzPDRw82wUcOoTRZbY/BKZ5ano1Sw1kIosHgvPiq7EHVw0MkhjY1Uq0NGIrZyvOBgqByPloOPQHmB5whIXIhDkscZtoHxafV4xXgr35em+JB+X5fa58HEHzU2Rr/aTzkIFiLWOGIT/dJP1m/pVb/KVLUFqFPPQIxvOVTb0JJtGmQOhhpjjWTTkTRpIAqSH88JDoKHx9lEKEkqi2rWb2m5YlJphfTbJKlerUGO4tOm1k8y4/SrLK2tBquHtYk11g/BF/Yz/Qy0gRHr6BMeUVHjNZmAuwADz3/cAHlmUed8Jo+K5UdkKhosgX6FWv1qXy79ai2EWZ5AUrz8XHh2SfVTJ8E1X0y726kTyBpgjLVGA6e7D1jJMGetNHT3w4m0zMAov+5eEXb5AzLAO/kAMkUCnm0DI+FRrC7lz9DvCIPdJ2wK2KWl/CLY4qEmIh/4kP8RvNKLcYX7TJ1ANsAbVdz0HFE83FZj4YOGxMFgOxAkgPHWUeCdTBvGsCz0wCsyrSmBLiAgEyROpt8Wfv708apL9St/hizhT9QPmRk8gX6Y3hkldQJhnfgdBEKTw4bhQC3R4S6ajBdyu9ABygJ8Wm4Lf0gmCQRK5MbIFwSEUonBS7QFywsJNCP6qevL1+QLWQH0s/bO+8gjgeK4i5mNQ2BadrzOMPCDkjdh4ZHLEEwrC1MU5FPsHcLpByhUhMPhVQDzklhCsHiCA6Ubi1D5lhYwZucPTz/hnXxm9D+E2OEtr0/RGe08Egj11kiqdaYgMG7UKp698GitV8ojUaCAIiD4UzxqDhJ4pQ1axTv9HixWP9th9fu0DIdokY98ZehndIJ+8Fn71KZk/STIyZJ2Z3ymTiBsh1v6GTLG7j45LqDixAQUvBBwrFYK5EmTyHX3JwFlTuCwIcoWL+SWCWAtUf0E96kS9Vt+WahIx/GhgS2q3xFYZlSq3wNhYHRFSX0euF3rTG8mkG8UfTWyjN6gwVftOSNiuEsmddUVpmc+8MM9S6s1uoKgc07qCJoqaas+5mQ5jkBIPRhjrCw3W8AIaRAnBAqRGjDLw/oBBa1IJxQzWVogFMNk3FdqXz4zRD6aWuS+YQScdzd1AndoPChR+IQxk+imLS4xFUvaCKT9CYdc8lLvQnMJKuK7JwLFBHZP3AumtZjAgoWyewQVE9g9cS+Y1mICCxbK7hFUTGD3xL1gWosJLFgou0dQMYHdE/eCaS0msGCh7B5BxQR2T9wLprWYwIKFsnsEpb4W2l7zjj37hAzWh258MAPmA5Rn6OCh5u6r5/mojLbSKqKstMz8/obfabfL6qgdUJzLz0IY1+kzkH4jLy87G5vo+we2VG/Fj6Yll5razB9dPvqAI5MZ+iCm0xP4kYM/nBG2unq8YTi+3PTb/wshVq5dGer7nUefe8zvcvukIwvwZswMqT0X0OkJPPGI4zO8f+yFxzNgCvjb82Hc9XffqKiMOi6Bo4bn+nJrhpheDej0BA4fMjwjQI8+nzlzMogs4M135iehzJpKeRtEIsE2gOj0BMbFcPnqFXFg86enHomFN+MFCSnK3rv3pNdspzC4ACRdksD99twnlam3PnB7LN0t92fCa+vpBTyRcvI2dvyD+51+GgElJx11onnulRfQdAWrzf7l9CZcryTNtD8//Yj5wsfP8iiNiR4rgZw9bfsQTbSDBVJ0lsOG04//jDnmoMzFVpT/j088bG554DYH7lfWz3z3y98xu+3wHgfr6kaXJHDm5BkZfj3x4pPm6AOOcvA33nnTtdM0/hazAk3ie/G//zA/vOmqWDQG0k2/vYW33157D30dXF5sECU+7eIzzaaqTSEwBtwlP7/M7LHj7iF4V3a6ZBca51B0IXNDZLU5a8rMEFt0xq2InF5sP3VWiF47r7z5n8TkKY3WH/vqp7QZqh987A8ZyfMJ/jP/v363S9tdlsAdZoZfAbZo+eKQoyvXrgr1f/rN8Iy5+Xe3hPDRzsm0m44rl93w/ThwIuzk8z+Zgbv993dkwHoKoMsSmG2BUb0184pKKb5n7RW8rkuL31bYB3ffW5uuvufP97q23zhi38PN18+4wOwbs7iCbP/5z2a8USOm3HrFTXypDJfL3rvznjEUXQMKR6kTdb5v170ypNP7UBj2y9/8KoQ77IOHcH/yuEkh+MKl73A/24UAn+G+RzKviSLg55zyJXPAXvuZi876ujn/tPN8Fm5j0aTlH/97SZuu/tInPm/GjAxeOI+FTHeVLktgnIN/f+lpBkdXqGee+FmGn3Hi6SE2PU5Gr8CMTLj64s8kCBoyaHBIHjqHfOCgDJgv/42YCwn+4iuDuYsBXbIKVZ8wais30VsebMFKUmebwlAPtoHeaxf3VkVGL16xhOulq5ZxrR8nHZF5x0Nxfl1Tu9XE3TXwadBevX6NA23aEl55OkQPaXTpDDz5yHCg31r8tvndXx8IhWL40MxLbz5BHd56GCkfPujoCKRjXf+OSNzxtmPSC8vdpQk8av/MWz13PXxPyKOzTpLdpwIPfN/+2uT653feEOqjE13wZBD0YUCXJhBf44qW6HHqwPcdECL57Amnh/rPR67o4GpIZ5Y4mztTX76yO9f7GGvK6f1nTU3pv1qV6/ZQ3P3GGLUMwsWBay/+SRI6Fj5iWM4fsYnl6ypgl85AOHXcoccm+nbAXuHdpRJGr5kqHPVJkeOqj4u2312+KApy/ehKWBETthuvTVfHPQngkF3c6PIEnnB45g1e9fmsk8/QZqj+9Ecyr44oAZ6bSSrvmbtrBuryX/wgBKuqqTIf/fKJ5qr/+4n59DdOC+HQ2SfmAsG5Pzg/RKfnsyFgF3W6fBc6eOCgRNdGJKxAjzvso+bWB+cl8iUhLj/3UnP8OSeH0C+/8UriqcSWmmrG/eLSn5sp4ycz36TIxQQAN2zeaI475ySz/3v3NevptCjbTeeQ8k7odPkMTPJh8MDMk+wkWoXvT1dTshU8obbL7J2zkcTiNHmKHD1ilDZd3Uq/avb0v57t1uTBmG5J4MEfONAFQhvRqy4K1zp6dwLw6Hml0vr1lV/9vkm6UuPTafv+6zKvn97yg5sU3ePqbklg3JNjh+9zaNbgfPbEzOPT9EnTs/Ioct4PbzGf/9hZ2o2t8TgGrpPGLZhK6bXLt115cywfZnlc0mOJOwHoTszofKwtm/xsX8rvbS85eGvR2waPK06m49z202YZJCFt2VxdZV5f8Dpf7ttt7nvcu8DT8itdtniCZs60HZU0tqbzU85dly9iYq3pYiDuTUbvT6Y1AQut/Wjx0lNKt+xCe4rzfcGOYgJ7eRYLkkC8N7pYuicCBUlgPX6apli6JQIFSWBtHf3CV7F0SwQKksAm/KhVsaSOwMaq4KmEeKaS7N+rM8bhC5JAGFHXkPyVsXgjt11o5eb1WZ0vLSlZl5XAGPcMZsESuHzNkhw6i2hEoKbWTZ7EgAwcMGh5IlIQ7r5YwRIIuavWr8ihd9tG42JXmhhtN2rstByReljxqRNY0b/iOWVKqjG6qmo2J6G3efjCZW+likH/8gEzchD+UfF+ArPecJs6YcY+ypStXrthtVm5LtceIJuEvofDDd9c1z6d1yUlwTONDhhu0GVQdwz0L2bjDmbWyC9cNr+W9gLJd2TDesyE7ehNvoOGRaDbThe7zCWrFpl8VumzpsyppIvrwWPfMeHSC9lAuQSik+uOBI2kyneXL8gqHHLiCu2CzQDa7EX0OJI+AWuiny1voAsbSd91zOYk3V/YPHvqjrmeovomxfDHKieawMcJcagi4+p3Vyx4raWlJfNhkzjiIiyvCNAtJFyT9A9rGfz+7AMySnxUBkcEMGvynF1JSPGkLxKXjnanjp+GtzlE8xEVuzQKCDFQYpqJYHWUKNqfPXWHgVFYsd/+CNAb/5+qGDAo+x1cER/+kiXBQrtQ0NBxED9xneraGC2L64i+mEwErp1l3KjxLw4fOvKDKdjn0wTbKUoXmoFAEhEemw5/YSHKZfuYifQqrdcS0EVwjgjQinNdyuQhLxnJg/iMGag6aWbhgJqIVzrUWJ0uWrFgUD6nGD7/ttYeVDHk6cnjpmQ+mpcciA9TAoNvnXp0iQmiBOJ5mfRfYhChrctWL36B7g9mf2DTM2BbaVICVk8YM3HVkEHD3punzy8Qb+JDOIkJhBJK4myqFuSpsEheuAisp+SNzSYu4xjoExPzQuof4sOK7S6LQE2u5MGSrDNQTS3ORI1El9VLKHkz0mjLOgNVgJ2JOL3I+vCv0hfrDkXg6rTJg5ZUM9A3h2bj3dT/lA8rtgsWgQmUvJx3I3xtqWagz0AKTqF+f9pyXrHx+YrtrBG4gOKKklfyIDHvBIKJFDXRNpGa2K0+AVix5B0BnGd/Glmjcm3e3JahXQlUZaS4mbbDYAHBptA2T3HFOjYCuN96GuJFpYw2HI46VPI+BnZIWxcz0/Ea3xr9KG1H0HY4bdhrtKfgKTHcanuMtt9T4KvaI6Sv8xTj3dcznMM/GgCTaPsZbVtp6+xSTwp+TdvMHGb1WTT5Xox3n81uSsdoEIym7X7aurv8lQyYkNLsXktGPhbj3WuzV0DDaSAcTRuOQj2tNJNBnyigqz1CFPlUjHePyEQ3G0ED4VjaGmjr6aWFDPxMN4erw+rJh2K8OxzFZAE99iIMJR7Xyvem7RDa8MAWnqabSluPtZlsK5bujwDuduJqJb5E9A/ankRNF84aqO5xpdsHM000fE3mONpwtMCVyjLaiqUYgc6KQAsJxhXtO2nDFe3azlKURm6XT0CacLhQ8TXavkhb/i+XTONVkaYYgfwigPer/Jq2n9CE7NInFLpkAtKkO5Sc+wVtGV/KIFjXlYYVr5tVv6k3TVV7GYMb4bRawYPn/PC537awfoP/Zyaf2WoGz9mj64zsQ5p6b7zxDPSXaTLiSNmppdMmIE263cny39I2u1M9yCW8jV4+tPS6V0zTZpxPUqHJRW9JdpPPTURamdB3OgSOVUpkQpYNesXscNVcU1pRPGpTdBJL34s3nmn/GE3G/yb63AFEQScgTTo8GoUjHZaX3V/WP/Ss2fyv/dkQ/ygXnVzo4wfwSvxJBxgmqk5WOymH7f6MmXHBAd3vXA+0oO/H+1cUdRwZMSgKUgoyAWni4QUif6Dt4IJYVQghK25+1tQt298d1TCR3HLTTip3JLSTiycmtZmOJqDyRCdsxfgXzY7X4spssWgEtq14P0Vuf5Qm4hZ1v711hx7mpYnXjza8qwvPRvacyVf92r9l8mHSYXJhUtkNkwpHO2wMaya8wqjNk49wPk9IBtHWLv+gWffQ80RULIjAthfvg8jrKhr7f8IcQAjaW9p9BCTF3yWll7VXcXq+ttZFNf97d3HdG+Ub21Zut9VsGNRqWtlunLK14eiE4rUPqC83cxuxbyEgJhojaeLwEQ301OYlKWow+jToKz6CYx7hf7e8v/nT8NHCLxqkTZbxqSTbBTPJQgIwjHHgl5uZrJrpGMR0aAkFPkUYfBSZAZZbRAIcl0ibpdCXHES3pSFC9LmonehrWzUzCT6IH3/K4/OjDUGEO7FivHlv2RCBdFK86YVS5pZWaGSt0AzVbJ90yNqSkrbt+k+snTxo+/W7jf5g0+5j951VYiK/gM7EBf+4nHRf1h6pFPr8CiVjPHHghHRcfpzpqFfVv7vkX1v+OnRz2YpRba2tOCvjSGvYMRjw5RnUCuNMWPGAfWhrPzMJBzZkSCebm3CYiIDTxkdA28dyFNp4WaoT0vLruaA3Mdf362fuGSkhCCyRAU/CuejAZTxEUXG0nv1Mx5mQmWBJidhSaw1+asf7L6l08i0t67T8oFBdXEMRq7QNxYOJispiWgEJv+KsoWdWTDSzSgewvZ0V75Xkw9XYL9Kf+BHYRyBX1GYAPLvbplbssPG4mZ+tnjNy1+mOuLCNtSRud5qIeX0pMK/DJzl0NinBRZaClpc2PrLgndYXZjeb5hLSMZ1+xpgOQpgYOqhEHQIqgw/Bp2LHja24K0FHpgClTY9afJQDHHItLrS3JhgvSy1e6fyjI8OsbL7eBCOoQJwaJh0/+RZPFewHOcwCX6jwTBA+kiV+CIHSZvhv+Vk9tTH4hKbEtFpdIHF4KBY1DGS5/CGCZPAKNeuX8AsSciL8DqHLdWgKxa2Q8YZ+Op5Z+0MTjfQSBt47/9lWayDFomRp3fzRP3v9wtHwv7xkQNtB4z668Pjtz5gT+NDhFvbGq0kvLtLcmFZa6glIgueR0FPTCs5Ft7WlasPfNt0yYItZh7ULB0LHggRPBiHGADYEV4PPsmWcyKBgvH6gtonHgMERkHhlmWnbekRjuKXVduiIafkhxz9a8iCT0+cg0TIkWCVkQasdsHBA6RgvDgU0Qmy5fFqZsOJ3xH/m9mgdtwcTYyR+tm0rRy1WI8bwkf9hedg2QDx+z3yBczxo1cA0nRVv7OP6iQrPAGeX80hsZQ+szUJOEGoA1NjWUPLoqvvmPLr6PjO+/9Sa83f7UcOIitF0PlGQ8guy6QM0CU9LIy3VBCSBfydhB6URmItmSe0b7z5fd+/Mlrbm0Zp8ioktCqGuDR4QwGsXFAgoCoLPwXUCbEMnoD+ZeJAAjwESnYh2ErIS24bWDDmWn+FlrB97BR4ErJo/YBpxB20G2A+GWxTzKT/jPS51GLKIXrvOf8Doj/f8QMooC1Qpg9MrJOAKSsDvoGhgoIboAg4YQgciwbJe+K8x1Th6MSxUvMkomMY+S0PaDHfWB4ZG/ScShCjkP9GsaVg25KKXPjmkvLR/21lzv7No97F7zwqEtLt1KuV2Kk3Cg3NJyDkBSRDe6TwDdgAAJDNJREFUiXdQLkG58M1tjbV/qLymtK50yyz8thkZx7HQQagjDEESGDcoyHaAswIdMEi4DacbBF4SdLkZOtLpeR14idafXNz38DygfBq0LR4y9X4hm6i2WP1wi2xiP1guBg744QDByW/8XDL7b/ndJKJ+/v7DHj9Goh+COI7UkBraYQT6arPSENhilQ928DLWk8383Lf8qgPySig+nRpvjgyZZ+0nO+COjhX1kT3hMaG++f4DG+9/U2tDyY3zL5k15t3x9d99/82tA8oq8IxyR8pBZNMjlOcPZRMi66gEChKAG49HJ6BTg5/ZeN/i32z87qDa0qoK3oPZpPJw4EBSS+LpBRTiNXigJE4EHFEHP2qArSxQo3AiMFn4fM7WfK5Hg4QnEcHacIUGtd1a9faDpfH5lQZ7cpYDmaBvYfViOAwhEEyiK3UyVAjg7ASeLWb7MPlgJ5uvPhbSf2sABisbxZpIH+yjD5n80me7rSeoOH5sLcxXO2ErkEDAP1EAeVz8eCFGnRLvZlGPTz/n7CJg1hQYJeaJnWwkDIW/4kfIf/CzZOFf37C64pxnjxl06+tXLxZIhz7xHUrMocSSOAGJ8STi+kIiZzpE2+8rr65d0vbfGQgB/AwlGCAbMIkTUyHHXICjWEtbKjCwHI4ZgmeJwaJtObrZyYWJ5k82PvJZnD+5eBDpRIzy+PR2kvLeHkaRZrYDraCNptrDtoGUig+Da9y3/NRxspS2ff7DlkA2ZAUFAxE4gcBmsQM8FmiJ1VYRZmVaKuVnqB/Tzoo36yDDAsVspcQPOwqgnFNiMvpwzi8EE1oCctxlhyKwwP8XKx+d8Z0XT8c3JQKgLyd9+wtkF+ZSbImdgMSAw+/dsRypgW2tv9vww+aa0k1yKIcbNhgIlCTd+saV7yfaMvk4MNDpkfJAscEDigsIbamppYfbMaH0qBXaQ9tJpkczN/Eikwx4f2BxHzDiJ7kNjXVU22Sy3kA/w2E/wzM/nP++Uxlt6z9r0Q9IFuk6eALpgX6ZSNTnIAuFhkfiKbJFWvgT1LAPm++Ak44G4WTHIP7X19UTrHPj3dRIX+dDzq19aidqnlEaP3RtlGL9t3i2Hz769NwLPtY2rBh04fOfbCZ5tNftULmb4hm7pI2dgKTqEtrwhdh2lz9suIbSUl0uwdGgBOI4ybbLyUbbBlipJD4UJI6TBEvj7HiI2G+/8ubrprmJkoUBYSeLW44yDHA7WLSPiepgmKCYZB6/o7O8NBlbWprNmwvpOV0e5GIbmmqfA2uSbQ0SFPbfuWQbcf47Pksj7CGf2X+gY/gBdnG0vKhYv+37bQaxIyDif6XiWq1Q+xcvXGJamhqJ0IuX21nZeLnY2n474t1KN+JXLlplbRH7tcP+o+P8Fwfgd+C/pbYO+D77bZWp9eam9eWX/uMM7G07UjCXLokTkDEByRg87X9hHHFa2FMb7l2yxVSSHPEWDur5BGSgr4UDZDv+QBEapUMt5yMcZI9f5aB+Z9kS+i1TOvppgvkIppPJGww6ofQo52qidW3Q47yPYCH6QE5tfZ1ZvmqVHeDirex9iY1tFPsz/NdZSpYyhXUz3n+MKiKgXbbK9uMHv7lgzEGOjU1S/HTP7+sVAfKpslE7fSxY4g9+xpCANavWmbo62tl1UbzrGxrMhrWbQuPHtz3Tf8Wyt8wX8l/ROeo19csH3/Lqj5fkIMuFvpBimvFNmowJSFLwHs12fyu9sa22akXJq9NgDcYCXM+YfDyYQAEaCY7tCY8bRCLDDT4eizSZMQttUf7m5mazah0eRqDiLx21reeBOlgwsbStEwy0UVi0r/KY1ph1GypNS7O9IGMdVpfgWYb/AuFPQrP/QQRoaFPH8aMNSsTLAlHLRQRwC780hBayQvzcsZPXxg87M2uGk+vLsiwiB/qYHpJVXwmtAFrMxspNDOvKeFdtqiJ1YktgDwzDP0fL+YRYcdx4vBGB779Y7mhtN7F6adPj07Y2V3fkfbCYU5hboRI3AY8NUeTZ+ceGhzeS0zxDJBwiACFzYeMMI2IYTMDbQDGpUDEJOIAHSMCWQug5uEAR8ZbaGsbhYzUvQe2y0k0ue0TTvj+x3HIzOLq5iRhdToGPyirvSZjaepxzqreBoWof6J0L3LC9bP6DKew0QxgKXXbjQUV0ql15CJ3JTzDRbD+FKJDFHMxoxUhbqCGPwAxqM3W1wapsZQO13Y7Ji6EP62C8V2B/aQvOOdljGINJZf8EbW2WKgChT5tUaBCX9d+KzVoRbcnv5v9qY1ai3MiMuRU3AXfJLSeZYr1ZNh5OaoGTvByDs9gQMM9xbSsaBIzmwJIU6oCG/xhh+TExGS0yS71nbp+oqSYMDQQ3eexkdDDqA+eWl3GT1Q4knpzA0wadsIHqJ+u9RUJpKScW9rijNXeInP7cctTyqs8g0TZJZdHsv5UGGIDY4yf6r0cDFgCGYKmIHlvAcRMCcQFtCSDrlyZTu6MdEzK3tdHyExw8JeSzlr+s30DNzo33XzaT/FDx7Icvsf4DKPYqAbvF8RD+kMgcnQU1r+E56I6UnaPMQRQDzISgmX+roWQrPZUrxS2V2GEbAooJw6nGoJIBAxh4CAJajhIqmYxCJzLxGeLn5Zmh3zQfzGzAL2tqMndswvLITiL/vI5h2J0ioXbi8USMTEKdvMprbYJVD9T3M2+2SOgAHmTv2cJ2tp9gKGonAdl5eMvuwVkGASI+Qo7zX5qEIZxAAXFF5XJcrP9EiuixfhYPRiub6ahnzWC7AlqxBdQK4zabJrYBozDIQLIGDqyAeC5L6hvMTSvwDHLnxPvujc3m1XrKjy0V0E2GiF+wkYxK9B8GW/ttC/ETXpWYrq5urnJjOx1HBlXGTyPETcBRGWx5AJpNQ6kORH8wiggKhA2cBgA0MmAIgjghqdxAnwA2yeB3chE+phFa8JfQA9zTJk4BGZdHt9aa71duNM1YcurA0OVntHYTEQPITkTmsUm3NsC8a2r7mwdpAmqZMG68KcXD42oPIUDHmwcTesHAd/zBOfA5/0HE/is1aIIS8t/yk4CA35KrWrbJsx1WMYwIRG9gN9uj/Fal0EhHZIKANqtz7LgxzriHN2w2F7+7kuJtd27RGPv9POL9/TVN5p6NyKGUkWNG0G8K6QQi56wtsJVtFBATs6/oU49dYxrYb4XlWdW3bI2bL/lIyZhbwUjKR0w7aDnBxCeBgACMDIkEBw4gFD8+ILFFg8ksRMN7MQQUeBFjJo0fb2obaunCCJZE9GLIxmZz2ppN5pCB5ea0of1NP0wuJB8MOLKh5glnYYyHMOqjYhNpCUmNe+v6mT83hMM1esRIM250MAiJQ0rIIQuyAtkPBiX4TziNlXBafsiUmcq2yeog7H9AL3AmVyDbJDrZNULyoCU8hxlALdZ+p45xzMU8TEbIUduNNA0NjaZqk3wx/PXaenP8G8vNkSMGmi9OGEbxBk/74n17ZbN5ILLsHDJsiBk+ahj5Tzsd+oOXzjRnOxq5/Gcu5ejWOjyiCmBKMMBsGMhXFySXaWpQEDUMrsXjQ6EgCdpsGnVBGxp8QFg6DJjZ02aYwQMHm8UrljlvnqxrMthox2kOGVBqjqooMRPKIMwe8WCJTj6W1WbW0UWWx+lI92hjGe3VnSjXmDR+ghk7ih6gZ1cCAt9m9cvDOn72xCKUjpGez74sYRRKCZPPJYJkwnjaVBaBBGob1mbAVJYaxlIBpBKnnxGWH0InTB5nBgzob9atqRQeAv51cy1viPdRwyvMR0cMMJP6gyk53msI9efNreahKvpSmhjL8vQDk33YqKGcapgH2wIyaSX6D3oWFHCo3O6u4UuokGMdsnJe5TdZni+G2xQdPATs9lysBR+yJ5aRgECJ+qz8LvgBvwRfEoN2Cz0qtmDxIrOxanPIv452hg8dZmZMmcJ+SFplT6xy1W6t4Ze0u8h/ih+Syg9SW6OkLfpxFIU9NspEIX3wMAzpdzaLgMB+DyfERGvlEd+qpatNdQ3uwyYU8DhFAQ2Lct1wb9DggWa7iWP4og/sEHayX/Wr/WwzfEjw39rp1LSzcfNBj7eTU9ho5QYXXOn8IyBC5pynZEmayQDJhiRX7GEcRVZTwAEnXl1uIntMz1kI8wcJIX5CgWfujJkkuIQn4dJVKwxu5LanYA8/eewEM3zYMLZf1Fv9zlqZaOKD7w+ord2oHX3YfnAIr0dBjsCPVP6zSpIZiR90O36XB9EW2MXM1gLIkL7kxrdffGT/QeTJg46J0yawDzVbtprKNRtNI56Q0WJlquwoWPpCVF5ebkaNHWEGDhkI6xml48SLDsE1rmoy8Uf9D8VPtfacuuATUF3jUOKD44cGQ3hyOBqeKZJUTYxQKYXj4sQCyiKtOCSD4ksyrWzFW0Kmpfao4cPNCJo8Wurr682GqipTR0+yNNEV00baUJD4/uX9TEVFhRlBR7qKAbjoZYcb6yCJ+IdO5rCfVr8DsU3c8z6UlkAQSUV3JlwL2soVPNPYpg48kMl7OoTf+U8I4BhvGbkt5ltdVrHFg5rRZL/cuQVCiu+ShVAl/KpHk6nxZzpCDhk22Aweioc+xJrGhiZTU11jGuubTHMzbU04/6anPcrLTD96tUd5/3KiH8i1LwtttUv8x4RTK0g6dRL9d9pZVY/9KPwEpIhwYGwAkAQNKgePcugvjxSnEcIeT4JtIUgCGG3RASMjR5IAlJIwPysCkLWH+EE7gCbWxLFj0RQcCVX+EAxfLaLRDv3OAqZ1vQzZelQQO0ma5We56BIiq/82fqDnwrrZEe7ygMO9PyigorFhixhsjwpsgOCVRp3kvoeHrMD/gB8wzobzn7U4nb5+NgYffv5BTv6X9y8zI0cP5xhCrfoPtLON2ijuaC1d+vTyT3aw/4Gxjl8sg73h8ROV78T2kEZHL6tmuCHneRw2RIMDhHhJzBBMDZLQICE6uhEsfFmXQcKA8HOfYdrjJAtEaOkTuvAnClRhUBMJcCwNWbR9sZHZARF+QbpkOwsgm/4xSIREMIpn+UQDLGuCTdApbOhwWwaJ0LAkK0D5WTYrAg0LwyfLhCwYxrVgbVvxRMAGqFBm5Q/YxFDYTw3usY0R/y2/irGSiEFaIf9FlMhn/6L+syrRy3jowiSBOKFVC2P9Z0IQ45/+2IQE/61+MUal9uy68EdADi5HiQNsR4OLAoIoiVUaQiGJElke3NoWWtmjMbV+QAAygk9Uyi8gJ4uRPNgswjFYfcynFmpymQgfIsfjtxpZtdoIOpjDgwcdKrCbazUOfWtChv8gVPuZS2QxPzG5wWpx4pNg+RNyld9vK9JONnTFBiJSeq6pa/s2BTBAyK28wHbIUJzUwBF7gv8sxuqVdqz/lt9Sk0jVYWUDr0jXCmicP6BR3xx9z24U/AgId5EjyRNSo8WGkBAYrBhYKBzsILouvMCFBh8EIrj4Y3pvL+jxg88VjCxbdMIwP2BuYLIFVqYQQ5yoYIXccfyinHcUoHbyhJU/QSLmBvqtREYwztqmcpXddyXkv1gk+sQ4B7ENERESEOhnPeoOaHz/qe+zoc19sFuE2ql07ihIBAoTA4RHfHQQTxCHIIgfCL3CPXzQpuqFwn5SJSxyFGVCQXlSek+z8EdAio4GDsHR4IVjZI9qTCttFzIvIZp0DrIjkIbgINXjxwCL4VcrfBEhfp/HG06BrLD1kAMc43kgC178DvyHXsFoHVig/BnnPFFbWAB9oIYCW8Q2ATrpufxXWYgZ67H8aEN2Aj8Rq1o4TnTCL3qZifEQwTA00HZ8zkJAA37C5/RfJPGnfMAWm3OW7+WfMIFOj6UHNwt+BNRUIRCuzSGzwUHy8GeTE2r7PBbPsZOYWx4NuCddabUmJpUf5ecjL9N5/L6lFuzzO0ri0wET4NkDqwZ+UdMOZMcnILEp6j8x4A8laFn7IwJEZ5z/zA4m20jwnzTE++/xWxGBf7BLCmDO/wAaaqkJoAWfbjw5gdTJawmVDhpUD7dVEDq2sE02foGvxKWMWitDL6gLfwSkaLg42CBq8LX248JBDQMcvwSckDyghQgwykGYxvJDry8vg5/lEBUbEsiz7CyTrbcO+LKYRvmVweszi/1gt1mHCNImLykjA8vpYCISTHirnmrbYj1QKpNPSQFx/Izz+7YNYp8f+j0Bjp+u90Nbdv+JRu0HMcsVGzG1xVySICAYQEQgEz6tGWg/nI8iTPQrzglSvSrHqiI6Zw90iAG++B7fLvwRUIMfCQfAjHJBleBhj4oSBJK7EW6mEAQwJIjl4YP3iDn4HTH4LD9kAM6JE7hVIJVnJwBsH3hYc0AiRxQmYIxjowaLF1LmY4gjgCyYn+S/ZXQVqNmAlP47RtsQfv4UMeK/xi9krajyJYj/EZ9ITob/ymR1SBd88uergS3K7/IPIBVbSYd7gNAm/wIBSO334mqZekVV8AmI8STBlD0iYoT7Pq4gYNr32qDg9DIbR5aDzAEnesYz2OMHj8ry2oDx3hZKiUdpQMpw4GXcO5wqYDATWgJPLsQpP9oo6htMQ8nLf6J3tqHNAlCLNJiBAho0ue/iwyjHz3QCYn5Yz+z0wd8gR00bw6mh3ql+USB4R6jyWLF0lN+iRD8BWRcBHZ4bAtcYMQ9oPXnaBj/LYLxIVzLnP8A+v98Wll73WfAJKAGlyCCckQBxIDWqCJVtAw4OsPj8PJgJyGScHSaQyYMmGMDmyWRZdmKLFXbwCiXzyCQRfrSdHdTkwWL5wRKVzdLglyBlwqkdkM62iOZE/4G2/FwRH4OI1+cXOwEjKlHItjp21av+W37dSYgVbLFSUo2dD3ZiEBnoZVupn85/LPdgE32SEo0R5HFbDNfZCEouwDk8IOBHRX9h/wUa8p9BMBq0EgHVC1RvLQU/B9y//sx2x2LCmElm6ODgkbF2CyoyFiOQEIHqrVvM6sqVCdiuBxf8CNj1LhQ1FiPQeyNQnIC9N3dFy/tABIoTsA8ksehC741AcQL23twVLe8DEShOwD6QxKILvTcCxQnYe3NXtLwPRKA4AftAEosu9N4IFCdg781d0fI+EIHiBOwDSSy60HsjUJyAvTd3Rcv7QASKE7APJLHoQu+NQMGfBe3qUDz1z2fMslXLcqo96agT3I+o5CSOIaiqqTJ/fPzhEGbSuInm0A8eEoLl2/nP/P+a195+PSfbhw48yowZGfMa/JycvYtg3cb15q/PPJrT6OMOO9YMG9L7nxvu9RNw1PCR5prbf5YzYUOHDDXHH5bx+4g5+ZTg+jt/Yf752r+16+pxY8aZXWZn/OqUw+dq3HjPr8zaDeuyks2cMsOcetyns9L0FeSGTRvM/X97MKc7h+5zSJ+YgL1+Cfqeubua2dNn50zYo889lpMmieCfr/0rdvKB/oa7f5nElhP+v7dezTn5IOSkI0/MKatI0Dsj0OsnIMJ+8pEn5Iz+qnWrzBsL38xJF0fwiyyTDHIffOwPcWw5YY8+97ecNOPHjDf77blPTroiQe+MQJ+YgHvv9gEzedyknBl49Pn8j4J3PXyP2bQl+w+83PnHu031Vvwqb/qyta7WPPfKCzkZTqZz12LpuxHoExMQ6TnpqNzLtGf+/axpaEz/Ay24IPDbv9yfM/st9FuDv6BzuXzK31LsDIYPHW4O3+ewfMQWaXtZBPrMBDzkAwfRj7Bk/ABpKB2t9JNlj72Q/uelsi09Q4Kp88J/XjS4opm2pDknPfGI49OKK9L10gj0+qugftxPonPBm377fz4oo/235x83xxz04Qx4FPA8LQ/zmVDgx1Hw/76f+0j4+sI3DM4ds5WKARXmIwfntjObDMVVbqo0y9esMFtqttBWTT/TVk+v/hhKVxGHmpHDRppZU2fSr0L1V/KC1yvXrjTLVi+nn4nbxL9INXLYCDNqxCj6MdXtzZBBQwqurzcJ7FMTEPfKcM5WS+dXSWXJyqVmwZKFZk6WK6f4gZgbf/PrJBGJ8HV0O+G+v/zOfPzokxNpgEhz9MN9rrLSsqxy4pAY7Hc9/Bs+IrfnpUUj6bbOJz/0cXPEvoeZ0tL2LZBWrFlpfkq3ht5d9m6cibGwDx/4IfPZE06NxfVlYJ+agKUlpeaEw48zdz10T9ac4fwr2wSc94e78r6oogrv+dO9PHhxZIkrdXT0wblotlJWVmZOOOy4bCQZuIf//mdzywO3GSyzO1I20VHqxt/8ijccoS475xI+WqaR2US//feVK79mVtDRNt/y56cfMdhmTJ6eL2uvpm/fLq4Hu3zcocea8n7lWS188h9P0Q9FNsfSrKSl4e+z3FbA5Pjeud+N5QUQR51s5444B811ZDqGjgZYgqYpm6urzKkXnWFu/t0tHZ58UX0Ll75jTrnwNPPIM3+JojL6uKp72jfPaNfk84UtXrHE7/b5dp+bgDiXyXXu1NzSbJ74x99jk5tt8oDhlGM+aXbfcbes9+bwxAxu3seVNPf+TkxxXxOyN9PtkTO//XmzuTr7bZI4O/KB/erem3Pe67x23nWmpjbL78N7CgdWDDR4gOKjtLP82NEncSwH9MevEW97pU8tQTV9Jx5xgvn943/MeqTBMvTI/Q5XFq7xXCkukCQVXGXFhR6UM048Pet9vBvv+bV5/w/fFxI1f9FbZvnq7Muzw/c5lH4ee3iIL6nz7esuNVj25SqQ+dkTTou94LFo+SJz0U+/nfP2zO2/v8PsOmcXvnAS1Yfz6n++Gr/D8Wknjp1grv/OzxJXKPDlxPM+7rP0+XafOwIiY0MHD6HJdUTW5GF55S93cFT81X03ZeU566TPOjwejP7Iwce4frSxsWojXxDy4WkuvqR97Ozfr7+cczJD942XXm/O/fSXYycf8DOnzDS/+9lvzD577I1u1vLQk+GH0ZX4H/97SZuJdXl5ufn5t69NnHxgxKnDj792ZaKMvojokxMQiUrzeJr/ZMxtD87LevV0x1k7mP3eu29oDJz60VOyDijcxF9PN/NRGpsazdN0hM1W9tnjg2bCduOzkTjcawtyf4MCtxpwJXPVutU5tz123MPJTmq8tiB+dbC2cm0Si4PPnT6nU291OEW9rNEnl6DIwXajtjMHvm9/8/S/kq84PvHik+bzHzuTjyS4ipitfO7kMzPQOG/51DGfMPP+cGcGTgF4WPvycy+lBwCeMHhiJls5OY+HrjGpchU8HvfFy76ciyw1Hkd1XLzq1y88bHAhKFdBPgpa7O9KFFRmNwjrs0dAxDLXcg6PpeGodMPdN2YN/cEfONBsP3VWLA2eVsEjY0kFN/NxUz/Xo2d77Lg73xBPkhOFY8ncHSXNOWecXfozbHG4dsHwyy19oPTpCTht4lSz1y7vzZqm6+68wby9eEEiDZZwZ510RiIeCFzgyFauvvWa0PlmHK1e3InDFWF9NwLhtUQf9BPLOlywSCq5blzjMjnOpbIVPIf6+8f+aJauWhpLlkvH3Blz+ApjLHMCcOzodEu6Yw9JvlCUIDorOLr8BPHAFPcs8fhbQUsfWYL2+QmIiyc7bb+jefOd+XnnHxMPj2WlKWfSbYlLr788DWkGTa6lcgYDAaaMnxIHDsFwjnrmiZ/l3wMMIQrcweNruQquOhe0FJegBQ1npwrL5+KGb8iZdNsh7bkLbs7jPC7fMmXCZPOB97wvXzZz9AFHmlw3r3GOe94VF5i054vz333LnPuD882xZ59gLrnuMn54Oo1huD+Yq+Bq8P2P5n7VRG198nO8uXT0RnzGmSw9JkU/Q9r+smBp/kca1daZP9D5lSsvyHkepnagnkX3x669+Cc+KGd7Kb0cCgM4n3LB6V8xB73/wHxYHC2eKf3Jrde6frYG7rFhok+iLy6Pp1sdeIoGN+HfoQem19BthGxpx4PSZ5x4WuItFyyxP/X1z5ja+rpsJjBuPL1D51tf+KaZPmlaiBaPAN5w143mjXfSvbXgl5fdYCaNnRiSkabT0R/onDNtxzRqEmlohx6ac31+CaqRwEWOq2+5Rrs5689/7KycNFECXPQ5ZO+DzZMJj7lF6UePGN3uyQdZB+y1Px+lbn3g9qjojD6uXqb5Bn4GIwHwkDQeobvyq983O8ycm0GCC1XnnHK2ueqWn2bgogBM9vOu+GoUvM32+/RVUD+r+793PzNu9FgflNjel97BgnPH9hR8pSayk0sUU4grn3j4/NYrbk580iVReR4I7FQevP63sZNPxeAhhS9/6ovaLdYpI7DNTEDEI+3Fjs+dnP22Q7bYDh8y3Jx4+PHZSBg3eOBg86EDjspJl4ZgzMjR5p6f3GFu+cGvDY7ChSh4YPq8z5xjHrrxQXP+qeemEonH/+666naDF0m1p+BiWbZvmrRHZk/n2WaWoEgEHr6+86G7+FvhSYnBjfVcr7ZI4lU4no55+Kk/Z33A+YQjjkt9pFS5uWo8bYKHnVHw6Nsz/36Ov9WP1x/i2/BJBUvIWfSgwcF0Loqnh3LddkmSAzhelnvT9+TBhr+/9JR57MUn+Ap03K0YfCP/g7vvbY7e/0h+JhX8uBC0LZXQCSEc76sXYbalpBZ9TY5AT7sIs00tQZPTUsQUI9A9EShOwO6Je1FrMQIcgeIELA6EYgS6MQI9agI2Njd2YyiKqreFCPS0MdajJmBDoR/Y3RZGVNHHvCLQ08ZY3ATs0KNodBO63fw1ddV0+Tz9q+PzinyReJuPAMYWxlh7C43tjr3z0ZgM/rgJmPur1lk8oNmX+/0EWfjXVHZIfRbJRdS2HoGOji0a29l/yDF3gNdESeIm4KooUT798rJ+y/Khj9LWN9bRa9SXRsHFfjECHYoAxhTGVkdKR8c26c6YW3ET8PmOGDl88IgOryHrGmrNkpXvFvxFsx3xq8jbOyOAJ3AwljCmOloKMLYz5lbcBHyoI4aOGjFmf1ord3gdiatV7yx/22zYLG8V64hNRd5tMwIYOxhDhbjyiTGNsd3BSGbMrYxH0aCAHkfDMjL3V64TrKmp3fLyqvUrs7+MJYE3CTxy2CgzZsTYgj8/maSvCO+dEcD3Gis3r6MfVd1YUAcmbjfp5SGDhnVkTC+nSZzxpHzSBDyVrJ/XEQ9Wr1/xVHVt9UEdkRHHW1bWz4wePsYMHzKiOBnjArQNwjDpqmo2mw1VlaalE94WN3TQ0KcmbDf5oA6G9jSagHdEZcROQBCRU3jz685Rhnz6K9Yuf7q2vubAfHjypcWT/EMGDjWD6XfmBlcMafdPauWrt0jfPRHAOd3W+hqztbaGbynEfcuikJYNqhjy9ORxUzo6hl+nybdrnF3ZJuBkYlhKW9x5YpysWFjl5vXPbKyqPCAWWQQWI9CDIzBq+JhnxozYrqNjt5VcnEYTcEWcq4kTEMR0FDyFqrviGPOB0Ruh1y1asbCF5E3Ih69IW4xAd0SAJsvqmZNnl9EPpKZ7hUJ2Iz9N8u5OIsk6AcFEk+ZLVMk3LJOkpIRXVW96ce3GNR9MSV4kK0agyyMwbtT4F4cPHVmoMXo2Tb5fZnMi5wQEM01CvEUn/RuNsmkkcasrVz5NX4w8KDtZEVuMQNdFYOjgYU/RW/lwrpdqTqSw7AKafDlfWZdaGU3Cg0npkykUpyapb6idv3ztshHFpWnqkBUJCxgBLDWnjJu6uWLAoI69azDTpkNI9t8zwZmQ1BMQrDRR8LYdXB0djX4BSytdrHlu05bK99AV5REFlFsUVYxAKAL0Vs7NI4eNeZUuruxHiA5dYAwJls4GqnahyZfxzGcMLYPymoAqhCbiVdS+UPuFrumiTeW6Datfr66r2YFmfftesVVoo4ryemcEaDIMHTjkrbGjJ+xCF1XGdKITV9HEuyhf+e2agFBil40vUHM6+l1R6Oski2u2Vq+oa6hraWxuGNTS0jK61bQNNm1mMO3ZhpBN7fanK+wv6ihMBGigU6pNDZ2tbS01JVvLyso29O83oHbggIFlQwYPndy/fMCMwmhKJWUJUe1DNrXr8csOD1iKxF5kANa7Q2grlmIEtpUI1JCjB9PE+3dHHO7wGhgG0DaUjMAvjBSfnO5INoq8vSECGOPvw5jv6OSDsx2egBoxOxFx4xK/mPGiwot1MQJ9JAI43ZpI43xsISaexqRgE1AFknGracOaGMvbD9OGK0PFUoxAb4wAxu6HMZap7Etbu87zsjle8AnoKyODH6FtDG2YjIfQNt/HF9vFCPTACGCM4j4eCsbuI51pY4cvwrTHOLpwM4D4zqANl22ntUdGkacYgQJFYCnJ+TFtt9Jk6/DbHPK1qVsmYJyRNCnx7Qs8/P0Z2jr0Nag4+UVYMQIUATxEgi8X3E2TLfbbCV0dpR4zAbM5TpMTF3Z2oG2u3eZQvR1tuPqqG26D9Ap/yM5i6VgE2ogdtwHwjkHdcHVyAW1v2+0tmmQZL0EiXI8q/w+dVK0gHHRBLgAAAABJRU5ErkJggg==', + 'data:image/png;base64,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', + 'data:image/png;base64,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', + 'data:image/png;base64,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', + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAYAAAFtKlp3AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA4KADAAQAAAABAAAA4AAAAACiWSQ0AABAAElEQVR4Ae1dB4AdVdW+u5tNNr1X0iEJvYkoIgqIiuVHEf31FwUbiqCIKKIgKiAooCiKKCAqIoqKDWwoYOgqRYFAIL1nk2zKJtvrf75z7rlzZ9689+aVrZm7O3PvPb3cO33mGZOndHd3r6Tl8DxkjCa682n5Zy7aimxIYuyO4iqoRGHaT0pfqQxagxFF+2b5pau1LZj4tdKY5V/6j7aVUvuoncWEHE79Jh9pll9iTNtuYzpoOey2ECq28+JnjWm39EfcGSLR6PgK2au/1N1cW9u1Ylpnd5f5yPZ2UUZCrp841XR0dZquri7T2dlpgEfdRXUHaoJfVT3R0Z/X0c347x77x/bKiqpqaIdSDilcB2Bzy6rVW82qad2G/gDqbCQBsqDvFosHXZcHNx0NRC8L0xL+4w+/iZVBPsF2hHL498Zb5oGwq8sq9AQ889JSp1DxWoNnybMvZhio+LMWnwR9KONDClkZLLaWq3ems8lUD6lmheyRegZK6yE1nXe7OtoFbvGsyq6G+B0Nj9YXdg4xm+ooj6bGHHHQPM6VKuCaIgFaLPsfssC89bllFDdj5i6czbkFTbSEFKowMo8tnD1jH7PPtOlukCje1eoh1VC63wHzWREGk9JEFUZC2sUMGHndtGDkcW372nb4EB2MBD+Ugy/TOygPeTipUyysqhhiuiuJuYKYSWlXpQjpqoJAEsahtMKBt0qcgRYPBe2dSElQQgoPaD+BMQvnHBBQlNhatnZpSEIopCFMD3VCHsbpeNu5p7l83H3jb+NICoLl9PCUc97ByqAIO4pTP/mugoTHEef1EIpQ/vC93zh+GAIjUKP4be0zImaV00MIwvCGYBUeI8OBQI/S1t7mYNFGToUghhAsVVVViZSC5x//WowqtuRU+M5Pvce0trUy43vf+p5YAYUCc+bwruvvDHmlIYOSJCGOM4ZHBOWJt0M6SXti4qvMnCGNs7BUWKzCbBveQpVt2rYhgyWUQ5pyuyi445avo703lXGjx2cwJAHA4PqGXY5031kL66gzCYCMgyjNo6MusUEbjuYFs/fHESEfRPkKtxJsconyc7EvJOXLnUJQUiimUbU5F1cxOFIU0pNVBhmQ91zBZyb6vOchWTUTc8YxQjZLC6ENTQtibAQzirM85lxBKIJ1QBt7HkLnC0FxHoaUKD7HuYKSuDrPeYhGhxX6yn5S93l3znBWHZ3b4ESGzi2+NWmmO1yMnlPgnOOqoTTeLO2n2tr4YAvnHN8/7q9q0y5SGj7y/un2L9ARGR2V4TiTaj1PQM1Ha8B4eDKU4TS8w4f5lh9yvMP8cdBcSUwvUxP4MM8SP/Tkv0JCINTHQxiOQ1HDGN+4tSvWE5SmGYyOFAyaxwH72Y5LeKTgBMQVezJT39VBQiHakFLB84kK9XGMyoz2LAvnIVVDqqxxTpJrYFvKp1OdXZ0VzmKy7NgjjzKnP/0koSvN4QcdJaFUj9hyz2OCn7F5l9lRt5M9nrNwlihkS5wubriNN3sAL9gTCOs2Rx92hAwgUtDJON4aOU+dx9SYOHWCGT95nCHDaZGj8bAq6QXzkASqUgkXKSdGBJJzZGsdKIDnxJO8uOI8nNg5l72qqqwy3VV0ugxl7tyCLIbVBOfRSsIYDyPZG4tno4kPebUGwmO/OIX7t53AcD0U8ImKbe9p3G02120MsQchDYF7rpNXYdKD4KQm5lQIZa99+WvMledfXvRhYYYhNOq4vLTmhW4sfvmfj5/qd7kNmML9mg6YGf6HB+5xPLsb6kMyoTynhyDQkH72movQzVpwlP67G35tfvjrH2WlAcKN0jiqQo60cZSOKZWv5PSw2MP5XEpzKgSjhlSFqNfFGkMbbNkG6fFoT0x8lYm9fl4P1bNi6rpdONQNFyg8B6C5M+avRq2eol1qaadrbtESOqbxlQ2pGmJGjRgdpU/U37VnZ4jOD2lIIah8pSGuIjuqDOzIIStERwcP2j1RVJdTCCU9pVSVQUdIIQBJSh7DmknBiCRy4mjKLTvRNCSlF0CxljjDPNhwpSum9uTENaOyp8cR+bCsGYRxPmFGe823HzJtW19jOumyUZddDrm5gwZFzv1Phpw4QJGy/aGpYjMczObYHVsvI1caq/gYkY4Bz6qn5LNjdBUPdWcL19dPnGYPbulYkUIEejnYDfp6/RoRxIEt8HLgS/TUv2r4HJHZFZZ9fjvONyCn2xw+9ri1Hz7o80SYWXxHXbSJ6VgifcQnv7PucjK9qZINxCEwWQTh+ONbRJo9do6MoT5jQcOLpY/2hYoDINIsPSlHP6vs7qFWbrd5aufiOU8+vJj6Xebyo35SO2XEDFwM4UK6u9VJ5yBhQs7xeSndRxBDJcrQjf6OetoRtNPRuw5NRNpmkE9JNGskNI5fRwGJk+xR1piO+nvq6T7ZOLqEFCO7u2I802kWyRTmv+TfZ7Bztxx/H0mQQvLYSd7IUPsxRaD+S90PtopCzYTUKvi5ZS9JlPX0s30Pnfvihl+zeWrJs9Yp8FjDbQaVP5AdOIbMgX7t6g1ZZa98cbWVHQQOsnIV3Yoe4xNtNWumsBHELPMDymVB/+WHHGpO30iXxvTGIp1f13V0mNPr6fbbgQczj0/PQxz89KdtlSt9nOeJ/P0WzTNvfZYC6MneSpdD3rKy1cxdNNvy67zN7Rx84o0MGROi/Mm2i8QhaxBftfAcRKTVULAiM6G+G3I2QH6fHYnQR/mpH5zMkows/H5S0PaHKPqYh/4cBIyLGG0jboXDARoYPIxCzqhx3tl1yfwki3UgwFn0W1PzVlkdhJH4Q+G27cNP1wdM++y87TMn2jH8vrwi+dmohKtYB1/d8qEQu38EG0L0cSfu0kjUJN3IROGDpj/oHYwdoknTl+vM/l0nn2bef8rpSUX1GF3RDqpzLzvoSPPlc78YMnDn7p1m/JjibsWFBJWhU7SDtIvhreRTzz/N125OeMXx5tNnnscmRZ3TYAAZd10nDhb1TWmi8Hz9oh30H1T48Bc/yrfqo7frizUKl+mGVg9l2zU4f334b+bk496Qz58MfNEO+pJu/erNfrd8l249qcHVFQ+YoFm0gxrZBDpCJMXyhYQU0Ik9Fo1e6sq3o8eNj78/er/Zd/Z8s2DOflnVd3R2mNbWVjNyxMisNIUgojv6qJ1Zj0ULUQJaXNZOMj9wMXLIiKIHTYZZOMjPV3RHT+cnQamsqFwZ9Mp/8dKXXUp7y/b8TzO4azJ0YCxHxlZjdJgCTI+HJLoJUYrRSXg3bl1vGpvpzD9S4oao7+Aaop/j88Q56eP7S5vmmntUxrOpmuAdzkEgKIlvpupPHhE3N2xZ/2BTS8Nro/C+7uOBI5r//MCRbws2Ltp3DQWgJkdXUzUX7QFW+Nkj32bdyPgwnOrPQxRQCPG+ELL/dTAUtSwvq3mU6d/T0kTLLWUVTMJ6UnZOW0nxmbRkLTmZ8yBJ6JlZBRMiD3vpaNLRkssAD/feQrX1lOzYjUzUOFKOd1f4icUorg/799HEe30+/bEbGTCRU0M1I9SNd27b7/5hXrywybSuDz9wn09rEnx+2Sd59mWVGJtBYmwmjpqsXEAsv1TuH+AGDJZuWg79cU6WxMjiZJ9DGf1+VEdGBhEVIsrt3Iov7TZ8a4tuunS3y9KJGzCN26MKCu4XL/tGMv3RqL5QBokAD3xlOF3XumH9PfXfmaVXmz+yq9pmj+4JdsMxyh7dDaqld1p+OW5K1kv5yq9XqxFLwPybMlcOnx8rey3dvbquUy4mg/+GY/8c9UX7J1Em79eOO3chZVPinLuNniUl3CwSTWh7tRpOIYPIHjsnfXq8DrQiGzX+bV/4w30rkelBx5xZZA+hhy3p6T0n75xHTqa28Z9NFb3G4B6aS5yfrS1KofVP677ATWckW0AgDEcdol3kpNdmo62xzikx3RkXyBOBoX4u2Rosr/7YQ5nXaUieWirDkfrD1Cmtb99+MfLBRkkNjPQ5c+oUsggn2TCqlQYtOOqWgF9gkT66xJtEdtSejz74BucQi/FWmkGaTEF5dveDL7EQAoET8WCjbF8y5mcOW9F209S0R2iZBxIsP9dBn7rWcbRs4UBQmwOXKbu1uZHlMbXaAwVU6HaeG5ICYfm8j1QHFc71Mx33LoJDsJZrCMGfhbERPFeQOWxgrEHkpLjBCoQLPGipLNuHRJaqeNvPKdvKsBJD/Bc/fgZ2bX75GzqxDvpOgcg3etvOHTIcda7wEJU5+Ww7PXLIcQmcYn51AgZCnq2xBfXx9bvoVjjkxsh+ugm8zhInhwXQalvrptiDkawOsihrrIs+CZo0brw5Y+OG0IZFot5t7myh1x/xxw4Exvv8hDR0/xZesm2KQz167Chz6nN0UKTz242MbvPj7diKEgv4wSv/LCPXKtZBMIgMluj42XiSjJ3lFTvomogaQle3cH+eLlYRH3gsP7elzzDixR//c6UShR5weuvZXLSGNuiebNyfx7ORhKIF66DmTo6V2w/6NCzCMxQ4NpwQAL/qiKPMY/950pzOxy0QIWIOO/BApsvHz/JgqJWnfRi/6OD9zPNLlpu3LqOhKiRAmzkLZlKX/li4tYcxuVfxDpIUyJE5AqEiVWpWY155+JFy/5wo9XF9PkJhI7Lws1Thh1lOnicf2AUH7ss4vu5Jqv0jnYAPrfwlq4McPuKHazCEF24HfYiHbYLTIEif1kAH/NQSWZbeOQUakc/0Vl7Ar7otv0fLCvKscsxBKxjOsaG6hgXWSIsRw4SePQa9BkX54RC3IQci5A8t/rf03MnFDzkFlCwOwliRAjPYHLGDmmoYN9kRNQocwiZcQd/SWgDTiFinByiUQK/tS8Vwx2dhSapYB50SNPDPklGruwzmPpT4eGC4z3zCDD6hk+CoHN5dgB5KqAgd+LP3lZYZEqxi5+CkznnMKoZ0G7zeb+j1G6jVJ5DgRReHB08tARHs3/wdOLiUR8iozw5g4wQ1VKPv+GWjwhiCsQ2o8QcBVGuJfipA4X4d66B+RkAJo9f8Fd7XdZJbC7FDtK8NL6f+1MFyRrMvZA36DMZuZJJG+v5//sNc/9Pvhsg/+I4zzaknvS0E68sOnwnTpjjY9pI10a1T3FY039MSxT4jU0gw8tmJW05lGaI3XXaj+f337jL/+6Z3FmJfr9AWNUSffuE/zjg/U+/7n/caLP2pFOXgrGkzC/JBh7MfjCjsnMvPMxtqN7BcPMblfzbG5ytIMREXNUQnTwi+gAFDsWzdsa1Q3VnpfedA9J4LTs9Kmw9RlIMQ+pVP0M0Xr3zkix/LeGPUQxfU/O13f+WeSgRjU0v0gllycUU7eOSBR7AR573/ExnadPhlIBIC8EQUyodP+2BCjuxkRc1BX9xJx5xosGhR51CXMncgr6qq6PirOcXNQcc9ABpFhwgZOu1T7+73LhY1RP+4WO7Ntbe3Z3349Y5rb8twXodvBqIHAUVl8K3Hv9lc+7mvZzXrsEWHmtEjg3e4k3xFIKuwEhFFH4v6el9as8zs2LXTHHP4K3xwRns97cgLPUjIEOIBkhyLFjVEPR3cXDR3YRQU2y+nc7EKYoBFDdEYOf0WlDrYX1PT3Jrs8C1RBqOTuT84vb52TSIz4h2sqKiNcvcnJ+NsoasO0UfweUesu4mLyKHQji1OiDo9cvgo/viw9nujbqEh2dIWelYipDZ6WQWXK0DAKzSi12VaWpuWrqtdewBw/b1EnYO96qA/RJf6jtQMG3HA1AnT+HNvPry/teOcIxvlzS5quAzC8GgWAUPJNVyFovfXNACbFsw+IO6zLvgCgktcyEGYmc3J3nehOI06NJU7w0EgBqqTUefgi0slOlriCBXXT+ufZ7M5NoO+E5TN2GdIfZo+bN9Pjp3Uh/rDqilYX8HwT1jqiY4/oxKW0vs9smNA2l2WSJHzmxImLB/Z/5TFoIRCBordeTcxCf3NIKMA0GOkwfFEBkHxgNuJlR487LGCuwTuOKiMWk6gzeHiMspjUSUlkJI0kaSsoIW/jFxu4/YSeVdSYr9YrK8FJ5CShhnwvmIVMt/mXyw2DS8cb/AeBB6txXEEnuzlmmCHfJ9O+ipzv3lTkgFFMveO3WMoofRcd7KSKIGUNLxSkf1MOpkuytWejWbVNfvQc2uULEoUFnw5WtucQBwUAkcZPfxn9PpQPyh9Y/dvKJF5n3fIm0BKXujhkqTh7DQdrUt2PbZ2a9u6YS3du4eRkIpTdm+ayrMOieKk2ZrfSELbgxNsVc3EPU+NOYBfJYBemOI/a4hnD7nYKvjog9A5vFDxw9dogpxZrGvqIZ6U5ILxxQ1Zf6SqtSC7X6gYteeB6plNQyuGto+tntB69NTXVc8bt/9sEV7w+jZK5AeycWVNIAXrfmI6MRujD2/sqq+7a8fXJkmAyWmSiifUUTsYMZxVT2+MRJPl+ph1XgKpva2y0vx8gnzHE/pYFoUWRoceRnWJQOKs/ihM+T04yyR5bCvw+IvBXzV8bkF2b6SfarhGch/y38WCHNhvxCFbP33ENXjVL2mpokTaERawxN5VIkVWfUAY1/rl9q92tHQ3DCHySYpnRmanFjpo08JwfslDE+UnC5tShWtN+Ap+ExFCWAzrYLHhQLN0ViAqVafQe/oZwNIg0aJRa08I/EBzKAq1m3cRNrTsf1gDZC5reGbKxx9+I5nabT5zyLfWLBh/0FzRnnVNv+DQfRwl8RGfIiOBRGRD4ZOF2/dsu3H7zsr1OAIdosQcBssqbeEBSGnkLR0vQXH7QLdpRQLpFSjwWwFsGs/qwB5GgYZAarq0CQBawC058NymVSAzjLekXDndcQmM7rt9u2nr020/hyn6xQKnHzYJiOtrnz1/LhTe/Nq/A4oNTLbyMMk4kpLoHqELXUsj5B+ycSoc74MieTDGbcYYSUYTDItYZ9uWkXo0y3CkSYu+bsV9eSEvwFk8vVjXDTpXIEFkqp68+vklABEQ4uU0iqxAfFg2Ism+gKAYuzkMkCJF5antgDr5loZ+sKbi7pW3L7PdbNXTPiKUQEKc4iOjbX2ZV+E8VGzS1Bg2kAjYdJ4BkuiHnviXJI7feESSIol0SUVCCUeJbm5qMLsb8K5sEGzVAxvC+sWqDP3Ei0TTv6QNDSpcWfvAozsXla/18/ghUNhWgN1tzU30jq/clWXZJB+1JpH1o+fpV333rL9t4fo9qzaykVlWREvBlOISSMDLFBhXL93z+EsMRyDUIFsjNNR0JYpvbGoSnCYJ7/zqO/L+LNTXWS1dM+1Llq1eBelw15WQfMZAf0ARwgPu7BQRjIdMC2deyw8prI/6rS105gRAgXY30Ws8m9fVOvks0cqHBb5e1g2gVy5/6qP7eN245tEK9PeBZyowrn6u7f59+TAd90oRE/ZMarFNg0h4KmyYHWF6A2tbe7OZTK898cm724fQvo4PYHTfSLWVfWWjfaMfLFScfmpbkA0Go0WnNAM8tXxaoLlvgRpAdF1bGezuaEtLo5k6BH7BVlp0f5fF7i9sogEKebwgLtwN5CtSQiXIItduBhL/nFwyWkwjJ1u/dw5adRimsrG0CuHtPmh4zVAOxfm1W82t9fV2c4RNZWTB/hGS6P/0XTWUMGMOWoDnpiCfOmjRrBS9CIzb8FkKgTGeoubjWYaFAY8/PW9EO8BLG/3qoeQyBfkj9E32723amsjut6xoZbtnzp/h6WfL2W7WbfWLH8AVX9wYIGESoSyy+DMkcNtSKTlqDir42DAR4A4wLB7Q5WvW0NPq+DVJKdPptPDEYV1mAu2BVtDE+0ubv0Ew5siDDoHG8Am4NSBeP6eBhcfpByvzkdc+v0ukj7eDD/o3ra819bvoJ/xsmTm00rxxzBAziX4X+aWWTvO7epqVXpm3aA4lUQKl8QE6Tr/HFmpGP/MeQlKHjkQ5d4kTiN8kJBPEcbLNGejB4KwGBngIR1++dAATMOqF5pkXXzAt9G3RaJk9fYaZNHGikyMBgGQpPKtUv00E6yRYN/ryGinrYf1WpwrQwaZ2xsmHrlg82b5mxTrT1oaDLGsPV91m0pQJZvSEMcRHWwVrXy79wp19nTSB4SGfXR48IrvE6tCa4IJDFcIwNfNYuCYdg+fQRfJIEQdQ5So/i7SyCOb0Kt4GDWysk2mojVnDSQWBcCkeENXPWMgCrf1zMDSoOF+sbKWcs98suEuLbL5ZJvr4w+BhmSyBIFYOGtTz9QNSjpI8gaQNhrOpbLA1jiGAA4OVBA4dCQ6AihOYQEDKHA7v5FsCh7dkDs+yA36VwjX0O3prS6n6xZnAfytP7VMt2fUrhXWsjFXiBIqxCA7MlGFOa3ZKHUFHTKVPpsNpFKp05DEW/DQDGS9iWKZQE1TxXFv5EMIEFu/rhwrQcgnwDkaokH4WFNgHVtCKBE8/IJ59UfnEBDTzOV3Uk7Z8Mt6a5PSLjPKukyfQuQirYSjVcNDBxWF0OSDAU3F4ZhCY4wdeZVlKZgOMcHzG4eHBLWI9/Vau6mEa5fHts3QQAFrXBa0wce3a1ECCAlsZI7TgB46KJi+ACIzle/qFuvzrxAmEah3JNgSobAKsc7BavHYuSoI8PMkRZy2MQ2EhNqrcs4GVAAmt0884guHfb7MsWAoJHl7l2poZLW2mLuHmxEES80T1K1xqluFooV9lBHQCLf86cQJf3fyhnNqzPGObk2dvRka/yF9sLPwT+WJlpHx9GIE0gX0Y/HKoThNYjij2oYw0gX0Y/HKoTnwQUw5luWTQT9ebFetWmu27tpthQ2vMorkLzLgx6eOmuWIGXJ8l8G3nnmYP0fOZGOBv/NJ3zcxp+W6VBfR7Q6vXE3j+1z5jVq1fXVRsz7n8k8x3wL77m6s/c1VRMgYbU68mED8iHZe8fF+WWbrqRXPRNy42k8ZPMj+68ubBloOS/OnVBK6kfVy0HH/0a6OgjP4B8/fP+/mgT131mQy+6y/+ZgYsCd1VN19tttTRDVyvfIM+r1I9pNo88dyT5uoffsN9FuzYI19lPvuhT/fZb6L1agJffshRXkikufjfD5onlzxp7rj2p7hJmYFPCli9IdlmOQndhtqN7htuqv+0896tzVD96NOPGSwov/zWz83wYb37SkevJhBOIlGnX3gGmq40NDUaHNTEFXxc6KP/+5E4VL+DvfvT7827pSi30b2ewNEjRzknP3/dJeaFFaHPK2T4h89f6SewgLz1qzcZ/8OCGQw9BIg7Av7qD75m/v3sEyGN2MTGbWlCRGXs9HoCfdu/fsGVfte1733k7+Zn9/zc1O+hB6Ai5cP0gcQ3HHuS+cTp50QwPdudMjH4GqVqOnz/QzMSuKOefk2kF0ufJjCbn2989esNFi3Rj8n97dH7ej2Bakt/q/vkUtrXb7nWfPDis/pbLAakPb06A6MzSfvDhg4z5773bPOKQ482w2uG8yH68jUrzBU/uMo00WPq0TJt0rQoKLb/5RsuN5d94kuMa25tMe//3Adi6QYysFcTiBP2L17/ZfPsS8+FYobroNf95PoQLFvn4IUHmavOvyIDfd1F15gLrv5cCP6fF/6b9bufIcIB3OnVBCJOX/3UZS5cf7j/HnPrb37s+tkamHFXf/ZKM37M+GwkZj/6fXsMkC9c90Xz/IoXMuhGDB9h7vzmzwZdQt2ZMz370Z3htQfI90Wx9JEKL1gJmvkeqcgXT30yu08OYhL4l5IkjECawISBKjdZU2vmwVkxOvwE7sktIPe3S3bUBy+t5JaTYhGB+j07yxIIP4GP5JI4smbkU7nwdbu2mYbmhlwkKc5GIN/xRCGB8g9iZhBjzld7kyrOtwMuxMDBRFvfsMts2b45r0s1Q2semT193qtzEepBjEsgiPMdiXZ2ddatXL/MfVIklwLgqocMNXNnzC/pNlE+Hf0dv6dpt9m8Lee8CLlAd9SyfavXp5tFCdwAQCiBAORLIpF00Uz0N71gS0sZIlBVVfXcvjMXHpJHVOgjsHEJTPRdtM11GxfTuczxeZSl6IQRSLjb2UwzD7s6VzISqJgEM5FJabO6lTarU5QvrZNHIOGMU4H4rvTp2tE6awJBQEl8lKpXKXGSuqFp91Ob6zbNIN7pSej3Jhp7cIJ4FroLqqbk4fMdGSVnApWakoFzxFHaT+tei8CJlLh/5NKWaCSQkNG0INnX5hKW4soSAVyTxoxDyZk8aEuUQDWLBH6OxdKKYBcoPK1LjgBODofa2FZSHbu5jNNSUAJ9AaTkW1ahqwh/Ji3rfbq0nRGB2wiC8zi/zKAOvnI0MArtUw+i5SZaHqelgZbVtNxNy4W0JNov94WnZNuAtLsssSLn8YnK7bQkLVeXRXGJQsjYAWl3iW6H2SkI+BWWYkvm7xGHxfdYjwwekHaXLSAUgBOKzVqEr1fvVQ1Uu8uWOAiiILwlkoRSu4mPzEpxZKDZ3SMHDBSEIymIOe8fFhlkfKAMR3E9VRCPD/SA8C46yqRvM5a/lCWBlDA8qPlTWl5ffhMHnUR8i/lSSmjmu29FuFpSAilxl8OYIvSmLBIBvPyxHyWz6H18UQmkxF1Miq8sKQttW1eYDT/cbdp30yd5u+rMmMNWm+mnn1CSzN5g7hm7MSvHUSLbCnWhoARS4kaTguDTtYVqE/oOs+JLlfQrLZXBj33QF2/54+dUj5z/sJl34XHFie5Rrt6w+2eUxPcX4kXiBFLyzibB3y9EeAxtt1l+Kemk67X4YDh/RJxqv42f3xky6l/mwOtfEcPfV6DetLuVkpj4Nd9E10IpeXdR5EpNHn00+1J6GNImD4niL8BTjV9tQF/rtu2vMC0bl/dVtjL09q7dwyjeKHgyIm/Jm0AShJu68e8/5xXvE3TSjzCYkaFEIWmcSMxC22YYJfT5C+b63H3X7jO7Wyj2w/P5nXMTSgJ+TAI+kE9IHL62ec26lxqeaG/qrh/W3t1WfWBLfc1+rXvGut9c0MSFfoMBSaRk2sT+espxW/RbnHRlgL/wKW9w0CymIt/6FO36MXPbA3mAJy/5W6P29Q9wswTIFFFCK1DZELCgbnNURVvN4RWdBdl9w9ADtmA/MWLI2Na5oxa2vnrmm+ZUV1QnmlFif7CmzWnOHGVFUvJeR2LuC0Tlb91X97O167ufm4OouI+zUlDQPrlpqJnVbjeVSBL/aIZNGGaf7g+1Jvx3ptBvReKPPmbOQbfRZpi2qSZb2biQTvuzAUiVwkEXJM62gdePpVseX/6Zw2aYhZVDSYzaqgMMPsTb/Wn6+LnK9GMxonJ05ycO/uqmWaPoy+nJS86LALGvl5Gj2LQmTt6ft/1g61azGg82zYHBGhoEz8bWVOqm0c4uyooNCtWaNIdDYOQHPjhx1OMkYVhDoBXKbcKhoI3RyNqB506g39ESDn9SIngrX/HgqdL9srMtid0kPUZ/Y+fuqq//95OzoP2ql99eN27YpCTP2FaSHXiUEBMqo2TbB27PoIwB0Nhtxw+C2ORJcD06xJHDhUZGIDCivSUOz7LAS8mxAfHEC9ZLCAce5Cis29dPbbbDoe04EPnM4uGFCmvPRt9ebcfaLcpFMgYJWr7+bvOFf79v0vX/+UItI/KvTiQZsU/+ZSSQCF9N8vJ+JrC2ZfWa27dfUg3dbjONEYzIcdHa4vGbCnBaN52hwBBO4d4+0JNggx0EQYMCVRU83FWrclFtmyH7XJKUDgIwOiDHygcr0TFFEXazMHBbFSH9CqR66Z6np33usXfTtjhR2RJHlZFAIno4jtCH7e6oq/1b481zAYONuo9R25zzHBENim56MKKRMKp19CJ52kaSbVsCavmpY+PhkkmEWfRbWl+/EkOOCgI/tfkHQ6wsJUMt+gu3m2WqAKrdYLN6nX5SUN++c8j5j5xKSvIXknNslCqUQCI4IkoQ0+/+Q/03p3GSyBI4iQHMfWqLjQwAUKLAQmziODmUMN0EeQmTxCG5gtfZrPJdBqGHZOPP6eee6meCkH61T2W4IBKpk892ygp+iC9IIOKLOpndLCEQwDFw+kU8h4YVkAPNnQ2VX3vivCS7rYw3yEIJJNn3W/lZqzt2XKIxYBo2DMYiksCw1xJ69kEj5Q5abCL9BEYDY2eosJIsEgTxIjWoWR0hVUVO/SwgkMBSwOukEsQJYsulX4TdYqGVDZkQZ+PjVEAv9GMh9KrGFya+tOOZ1dTMWYg+dDoSTWD2rwiQ2Kfq/76MNpdsCrRAsainGh2vKJEGpTt0oo7NJC0OhtHt9y2eqBy/J1ubifSzlRCkXJE6angErVsDt8VIaLfzX+WF9Hsdr/mNZz8zT8lz1L/ycS6BFKi89/Je6HhgoUuYlYIDCBdkDoZQaFywA8c+sn433TnhWeclK3QgQ0nzN6fU3r1nDx8gsXw4SnKcrlj9AFr9Hh76mZ1hYfuw/fRlMpaI1f7GBlz9g23J7W5qaHbjBYl0+jlZnn4gaVH9MO/eNb+WX0pFJ76EfibXJZBovxpPL9DtrZs28s6CulAI3fBSzFEj8JtEtm0NA+0uJC+aLD1o0Vpno9YUsGVr6OdXbSS5xs7Kyo/XT7otXulC/IzTFWiDTIFOZFo4kTU0NFLHDiyt1V6t1V6tyW783iAKZIbjA9mMCBJn/QMY5a41Ny2SVrK1n8Cjc7Es3nPHBA0G6JxpYhGzSkBEik+7bM1qAtoRrIGAw7oA5vDegQJBIZ7l2gFBXS4Z+oFnaov3A+OSw8Y6CSBn+ZbWtxmYTRuQiOLttoZSZQeHKgTCmuJbxPQJVmTny5TMT6DCYuumyp18YdU5yZpVPY9d5osLIr7E1NxpE6Pne9EZqXBNMAJHpZl+JDJ0nqeJUf2smrMn+hVPPWcLNpPA2iSjLZbL2p2nAe7xt7fSL2l30APTsEntS2h3W0troJ8UiyaxSfTT2tMF87QsXndP4s1o4gSqcNSBkzCM/rB/YIStrGEIjNKuoG+VyT4OmySix+zT0e233WwUWfglaSdfQE4mMgL5qsOiXZ/3z2yfhM/FSxvWPuyj/CIyBfJio92McuKS293e1sEDT+KTXb+vV9tPbFuc82CS6NzxSuIERgMFwygTtFCYeIRrX8xw9IRDuWcP3chH4njxN5NeIjmhoDGmEeKoDB9GE98G2iXKzqRAP1rE4CXC6Wf7gIq3D7bDQqYXKawXElF+s5UeVynA7j32gjh+QFlihPhAWrx+qyxUbW5eOyEEyOzMUFDiBCqDGEI9jhf1KDASHOuyH0QhMvhKL8rWDnrkgzeRSBJmIi2Yff55IAjJ4U/ukZvSQ4fR1bqQTBBQYf2oovoFbUmYF/ZJEC1fQOISxyDJmWuOGCE21LbZrQcnMrfdH1hLm1wq1UOrxWyOD7sEk8Vu1DlKU9eeqhxooIpPYKZg67XnvE+DAC+cO59Bn95KX7PVxGGTxMlDQDShIuSXLUNMKzV1ZvjyuA0yIBESL7mMYzi3GA/9KFEyhhEuNPiYkqWy+Okz8bSkMWe9tJ6ANnE57L5te4dpcbexRFgu/UKRuabX1kNeZFIYvgYNeOIZ6GYaYkaMaphu3hiC0Wa1aQsbqJphQ01lpag6fctuU9tBm1De79mgYAZazmvovuHdlECUgxcuIvFyHsk6kQWrQwPv9DOKtNpM+foVJrxiocL8/bTwQBDUdBvM/gqyG/C3vrDRbGylLUgWu79U22F+tZP8oTJr/kzmQRv+qy5fP3DlKLH3A+MEsxEUTK45SPYAAt5SAZyNhekenqNB+FcedoR57D9PMe1ndsjPj79xWLdZQGNpV2eVebCt0qynB9W0TBw33gypxmZI5dMszaff4uP0Kwz2oK2JC+RDj+8Ttelv4YHzzYtLlhOu23xslVyuPGVctVlUU2F2tneav+/uMmvayDZbRo0dZaqGIOkSE/EfOkHA2xTnk2UpqXJTlRyRSGURh/t+7miNSPkPNXGhjQIR3GI4UwgeRFTA/8//ShIZkGU1le5zzphKmy8rT02L1U8yFO/XrJ3tsPZF7WTZDHR2O354RHinnzaLL72wImytuKSeM27s+LFmwpRxVp7IYDFKhQ4V1cOdLKuy/448VCPbGkRriw4qREmKQ9g+VTQxEAuuX3n4kWbLtm1m9Ubar0RKzbBh5oB9F9JmS5xUkSDLqj8iwwXHY5ZxL4QOr0JRKwHsxD4MfSpOBNmz8KD9zK66XWZrLR2VWrxQ0bvRdMAyc94MpnfylZlo8WPOGhaHV+YS68SbUOhRm0ItsgxGYfOpBX2fVowmvAVOoRk2mZ8mIDoKmFAHmy+mt7QsC95j86gK/JbqxyixJZ9+sYeIYZLll04AC8uC5gozduJYM2bCGGqTxdaYLjoAY3k6SgVrLYQCi/fio7LLUQc7nTzS2Ei1OmQkYiv7Cw6GyvFoOfgIlBd4joDEhTgkeZxhGxifVvdXjLfyfWmKD+n3dal9Hkz8UWNj9Kv9lIPgQMQaR2yiX/rZ9Vt61a8yVW0Z6sQzEONbdtU2tGSbBpmDocZYI9l0JE0aiILkx3OCg+DhcTYRSpLKopr1W1qumFRaIf02SapXa5Cj+LSJ9ZPMOP0qS2urwephbWKN9UPw5V0nn4E2MGIdreERFTVekwm4CzDw/McNkGcWdc5n8qhYfkSmosES6Feo1a/25dOv1kKY5QkkxcvPh2eXVD91srjmiym6nTiBrAHGWGs0cLr5gJUMc9ZKQzc/nEjLDIzy6+YVYZc/IAO8kw8gU2TBs21gJDyK1aX8GfodYbD5hE0Bu7SUXwRbPNRE5AMf8j+CV3oxrnzrxAlkA7xRxU3PEcXDbTUWPmhIHAy2A0ECGG8dBd7JtGEMy0IPvCLTmhLoAgIyQeJk+m3h57WPV12qX/kzZAl/Vv2QmcET6IfpPVESJxDWid9BIDQ5bBh21BId7qLJeCG3BzpAWYBPy23hD8kkgUCJ3Bj5goBQKjF4ibZg+UACzYh+6vryNflCVgb9rL3nVgUkUBx3MbNxCEzLjdcZBn5Q8iIsPHIZgmllYYqCfIq9Qzj9AIWKcDi8CmBeEksIFk9woHRhESrf0gLG7Lzy9BPeyWdGfyXEDm95fYqeaBeQQKi3RlKtMwWBcaNW8eyFR2u9Uh6JAgUUAcGf4lFzkMArbdAq3un3YLH62Q6r36dlOESLfOQrQz+js+gHn7VPbcqunwQ5WdLuiXXiBMJ2uKXrkDF288lxARUnJqDgAwHHaqVAnjSJXDd/ElDmBA4LomzxQm6ZANYS1U9wnyqrfssvByrScXxoYInqdwSWGZXq90AYGL1REp8HTu6a780E8o2ir0ZW0Rc0+Ko9Z0QMd8mkrrrC9MwHfrhnabVGVxB0zkkdQVMlbdXHnCzHEQipB2OMleVmCxghDeKEQCFSA2Z5WD+goBXphGImSwuEYpiM+0rty2eGyKq9U+4bRsAFdxMncP+247MKnz5pH7ppi0tMaUkagaQ/4ZBPXuJNaD5BKb5vIpAmsG/iXjataQLLFsq+EZQmsG/iXjataQLLFsq+EZQmsG/iXjataQLLFsq+EZQmsG/iXjataQLLFsq+EZT4SkxPm7dm4xqzbed2epdwl5k3c67Zd9be/buDSePdZwnsos93XPqdr5jnli3Jaev8WfPMNZ/9mhlaTV9LSktGBPokgT+860fm7gf+mGFMHGDV+tXmnZ96jzls/0PNFed9JY5kr4b1+j7wll/fmjh5fmaeefFZc8o57/BBaZsi0KsJxEOw9/zjTyUFHklsxsuiaeEI9Oom9Ad33hIb9mFDh5mLPvJZc9CCg+iFzhqzdcc2gxn36NOPmadf+E+I5xOnn8M0IeBe3OnVBP714XszQv0/J7zFnPWuD4fgUyZMNq9/1et4AeL0C880exr3mO9c8i0zd585Idq9vdOrCYwLdjR5cTR3XHubaaHNZg3NzrSEI9DnCQybk72XK3lX3Xy12VK3NcT8jc99nX7H3r3IyriHnnzY/OZvvw/RvftN7zSvOuKYEOxTV30m1Efn+ou/yY9UXH7jleap559m/MjhI83H3v0Rc/zRr82g7y1Anyfw2WXPmUPz/nR67nBsqN1oNtRuCBH5z68oYnfDbrN6w2rtco1Nc7REaYC/7/EHzHduvyFE2tjcaK77yfXmW7d9x/zhe78J4Xqr06tHobi6Ei1f/PaXzeJ/PxQF97t+NHm+gRgs77/ogz6o19q9msBLzv58rGPX/eTbfI73oUs+au6nkT4QS/2eej7Q6m3bezWBk8ZPMuPHZv+GTd3OOnM9baZwroflE1d8ir6XhvfTB0a58qav97qhvZpAeHfb1241w2vy/hwCB2Ld5vXms9dcxMn81zP/7vXg+AqPOOBwc/eNv3VL9MAHtEtXvuiz9Eq71xMIr3553R3mS+dcUpCDGN3nXnFeQTzlJL7sk18Kifv8WReG+ujEHThlEJUZ0CcJhA9HHfwyHs0//OpN5oRXHJ/IrfWbN5hbfv2jRLR7C1GfJVADjKsunz7zPLdpuumy75nXHHWcojPqe/6R7C5GBuMgBfR5AqNxnT55uvnshz7NCf3AqWdE0dx/ckn+b83EMg5CYL9LoB/jd7z+7QYHD9GCk/+0SAT6dQJh4rtOPi0jV2s2rM2A7a2AXk9gc0sznxZs3LIxUcyXrso8NJ84Lt/nNI3ZSc/W7A2lVxOI64nvvuB0juvHL/uk+dk9P88b49v/cEcGzYK5+4Vg+9JzM9Hy72efiILM3x8bmFd5MhzxAL2WwIu/fWnGxeBf/eUuno1fu/ka48/ILdu3mu/feRPjPFtd882veZNro3Ew3QiOFjy6sWnrZgf+1V/vyriQ7ZADuNFrdyOuOv+KrAl5/L//NFiSFNzCiZbD9j8sCuL+2V85NxY+mIC9NgMRtN/d8OuSY3f71T/OkDFt0tQM2N4C6NUEVlVW8fndjCnuk88Fxfn2a35shgyJ32hcf/F1eWUdfchReWkGGkGvJlCD84Ov3GB+Qhe195u9r4Jy1u875b2c+LGjxmalw9Pc1110TVb8p97/CXP4AfGb2qxMAwDBH9GAnXQhtjuXvbleyi/HRw5wK2n52pWmqaXJTBo30cyaPstMyHHrKZetwOER/Xq6Az9nxux8pH2CzxVPGLRwzgE57aJPo3Du4rdHOVl7Bol7hVjKVcaNGWewDPbSJ5vQwR7U3vQvTWBvRrsHdJUlgXhkPi19E4GyJLAFP02Tlj6JQFkS2ETPR6albyJQlgS240et0pI4Ajvq6bcncpaKzKeNw/QOX5YEQnZza3NYRdrLGoG6Xduy4oCorKgIvyeQSb1JQWVL4PraNSozrXNEoKHJTZ6sVMOHjcj8WZsw9Srtli2BELhp2waVm9YxEcDFriQxmjxhypwYdh90j3YSJ7BmaM0jypStxuiqb9g77oRni0Eu+PJ1mU8XxNEPrR6WeYc6TPgH7foJvE2BcfXs6fNeFQePwrZs32w2bs23BYhyDe4+/aCjyXft00WgoqLWtbM06DKo2wf6F7NnEn3OyC9ft7SJtgIjssjNAE+fTF/yHbH3fskXm8w1m1aZQo7S9521sI5uu+W8KKwXshFwl0B08t2RoJFUt3L9spzCISeu0CbYDKPFXkSPIxkUsHb62fJWurDRgZ9dL7DQ/YVdC2YfkO8K/Ocphler6GgC7yPE6xQZV6/csOy5zs7OQ+JwKay0CNAtJFyT9HdrGQL92QdklPjkDI4IYN+ZCw8hIelJXyQupXZnT5uzlGRE8xEVuzYKCDFQYjDvg0e5otS2v2D2/sneD8vCn4LDEaAv/i+uGTYi9x1cYVkU5ozsA4Gk/SC+DJDo2hgdFjcTfZrMaFQL6E+dMO3xsaPHh7+yEM+/lCbYgVFUaAYCSUTtVOV/4paIMBOrqqqeA19aCo8AHXFuTZg85CUjedAYOojxTaCZhR1qVrxPi6PTVRuWjSjkFMPn39vaI2pGPThz6qzXFuD3WyiBf46jz5ogSiCel8FsLKR0rdu8+jG6P/jqQpj2BlpKwObpk2ZsGjVizMsK9Pcx4j02G0/WBIKBkriAqmXZmFN4j0dgGyVvSi4tGftAn5iYl1P/RB+WtnstAg35kgdLcs5ANTWdiRqJXqvXUPLmJdGWcwaqADsTcXqR8+FfpU/rkiJwbdLkQUuiGeibQ7MRL+y914el7bJFYDolL+/dCF9bohnoM5CC06k/lJa8V2x8vrSdMwIXUFxRCkoeJBacQDCRonZaZlATm9X7AUtLwRHAefb7kDUq3yqY2zIUlUBVRoo7aDkJFhBsFi23KS6tYyOA+61nIl5UqmjB7qikUvA+sCRtvcxM+2u8zvs2Wt5Ay+tpwVajmIKnxHCr7e+0/I4CX1+MkMHOk8Z7sGc4j380APah5du0NNLS06WFFNxEy/w8Zg1aNPmexnvQZjehYzQIJtJyFy19Xf5KBkxPaPaAJSMf03gP2OyV0XAaCG+iBXuh/lY6yKD3lNHVfiGKfErj3S8y0cdG0EA4hZZWWvp76SQD39/H4SpZPfmQxrvkKGYX0G8vwlDica38lbScSAse2MLTdLNp6bc2k21p6fsI4G4nrlbiJaJ/0vIAarpw1kp1vyt9PphpouE1mbfTgr0FrlRW0ZKWNAI9FYFOEowr2rfTgivaTT2lKIncXp+ANOFwoeIztJxNC24TpCWNQF9HAN9XuYmWb9CE7NUnFHplAtKkex059z1aMl7KIFjvldYNS8ymX7SY9nr6YChuhNPRCh4854fP/baFDRn5jJn54S4zcuERvWfkINI0cOONZ6DPpcmIPWWPlh6bgDTpDifLf0XLgh71IJ/wbvr40Nrrnzbtu3A+SYUmV5c3+dxEpCMTeqdDJiWOUiITsmrE02b/axaZypp0r40wZiuDL954pv1/aTL+N5vLpcDLOgFp0uHRKOzpcHjZ92Xb3Q+bXU8cx4b4e7no5EKfvh9hKvxJBxgmqk5WOynHHP6QmXfBa/reuX5oweCP9w8o6tgzYlCUpZRlAtLEwwdEfk/LCWWxqhxCNtzysGled5zbq2EiucNNO6ncntBOLp6Y1GY6moDKE52wNdMeNwd8C1dm06IR2LvivZjcfhtNxN3qfrF1SQ/z0sQbQgu+1YVnI/vP5Nvz3JMy+TDpMLkwqeyCSYW9HRaGdRBeYdTmyUc4nyckg2ib1h9jtt79KBGlBRHY++J9PHldT2P/j5gDCEGxpeg9ICn+Min9SrGKk/N1d61qeGbl6ubnq3d0b5zcaLaP6DJdbDdO2bqxd0Lx2q9pqTaL2rBtISAmGiNp4vAeDfTU5kNS1GD0adBXfATHPMK/snqo+ePYicIvGqRNlvGpJNsFM8lCAjCMceCXm5msmukYxHRoCQXWIgw+iswAyy0iAY5LpM1S6CUH0W1piBB9Lmon+tpWzUyCFfHjT3l8frQhiHCn1UwzL6saJZAeijd9UMrc2gWNrBWaoZrtkw5ZW1HRPXnojKaZI/bbdtjEY9oPn3LsvhWmoqSdDMvOv7qMdH8lP1kmBYW+sELJmEYcOCHtkd+Y2tSycs0Tu/86elfVhgndXV04K+NIa9gxGPDyDGqFcSZARwWwNzcOMftgx4YM6WRzEw4TEXBaeA9o+zgchTY+LNUJafn1XNCbmNvoV5t+Pl5CEFgiA56Ec9GBy3iIouJoPfuZjjMhM8GSErGl1hr81I73X1Lp5Fta1mn5QaG6uIYiVmkbigcTFZXFtAISfsVZQz9cM8PsWzmM7e2peG8kH67FdpH+xI/APgK5ojYD4NndPbtm/x1vn//BPQvHHzLXEZe3sYXEHU4TsaCXAgvafZJD55ASXGQpa/nXjj8vW9H12IIO01FBOubSV6JpJ4SJoYNK1CGgMvgQfCp23NiKuxJ0ZApQWnSvxXs5wCHX4kJba4LxYanFK52/d2SYlc3Xm2AEFYhTw6TjJ9/iqYL9IIdZ4AsVngnCR7LEDyFQ2gz/LT+rpzYGn9BUmC6rCyQOD8WihoEsl1ciSAavULN+Cb8gISfC7xB6uA5NobiVM97QT/sza39oopFewsB75z/bag2kWFSsbV468dtLLpwI/6srhnUfP/Vty0/d70MLAx9KbmFrvJn04iLNjUmlJZ6AJPg2EnpGUsH56Bo767f/beetw3abrTh24UDoWJDgySDEGMCC4GrwWbaMExkUjNcVapt4DBjsAYlXDjNtW/doDLe02g7tMS0/5Ph7Sx5kcmQTJFqGBKuELGi1AxYOKB3jxaGARogtl08rE1b8jvjP3B6t4/ZgYozEz7Zt5ajFasQYPvI/LA/bBojH75kvcI4HHTUwTU/FG9u4IaLCM8DZ5TwSW9kDa7OQE4QaALV1t1bcu+mXC+/d/EszbejshvMP+3rruJqJdD5RlvI9sukVNAnPTCIt0QQkgf8gYccnEZiPZk3T8ysfbb5zfmd3x0RNPsXEFoVQ1wYPCOC1CwoEFAXB5+A6AbahE9CfTDxIgMcAiU5EOwlZiW1Da4Ycy8/wKtaPrQIPAlbNK5hG3EGbAXbFcItiPuVnvMelDkMW0WvX+Q8Y/fGWH0gZZYEqZXB6hQRcQQn4HRQNDNQQXcABQ2hHJFjWC/81phpHL4blijcZBdPYZ2lIm+HO+sDQqP9EghCF/Cea2tZ1oy761/+Nqq4c2v2RRV9cdfiUV+4bCCm6dQbldjZNwhPyScg7AUkQvol3fD5B+fAd3W1Nv6+7rrK5cve++G0zMo5joYNQRxiCJDBuUJDtAGcFOmCQcBtONwi8JOjhZmhPp+d14CVaf3Jx38PzgPJp0LZ4yNT7hWyi2mL1wy2yif1guRg44IcDBCe/u0gG+2/53SSifuH+wx4/RqIfgjiO1JAa2mEE+mqz0hDYYpUPdvBhrCeb+blv+VUH5FVQfHo03hwZMs/aT3bAHR0r6iN7wmNCffP9Bzbe//au1oobl16676SV01q+fPQtXcOqavCMcinleLLpz5TnN+cSkvMKEQnAjcc35RKQBPfQjl+u/sWOL49oqqyv4S2YTSoPBw4ktSSeXkAhWYMHSuJEwBF18KMG2MoCNQonApOFz+dszed6NEh4EhGsG1doUNulS28/WBqfX2mwJWc5kAn6TlYvhsMQAsEkulInQ4UAzk7g2WK2D5MPdrL56mM5/bcGYLCyUayJ9ME+Wsnklz7bbT1BxfFja2G+2glbgQQC/okCyOPixwsx6pF4d4h6rP2cs4uAWVNglJgndrKRMBT+ih8h/8HPkoV/W+vmmk88/NYRP1py7WqBlLTGO5SYQ1lL1glIjO8kro9l5UyG6P5d3bVNa7r/Ow8hgJ+hBANkAyZxYirkmAtwFGtpSwUGlsMxQ/AsMVi0LXs3O7kw0fzJxns+i/MnFw8inYhRHp/eTlLe2sMo0sx2oBW00VR72DaQUvFhcI37lp86TpbSFuc/bAlkQ1ZQMBCBEwhsFjvAY4GWWG0VYVampVJ+hvox7al4sw4yLFDMVkr8sKEAyjklJqMP5/xCMKElIMddNigCC/x/vO7eeV98/AN4UyIA+nKStz9GdmEuxZbYCUgM2P3eEcuRGNjd9evtX+toqNwpu3K4YYOBQEnSrW9c+X6iLZOPAwOdHikPFBs8oLiA0JaGJnq4HRNK91qhLbSdZLo3cxMvMsmA9wcW9wEjfpLb2tZMtU0m6w30Mxz2Mzxz5fz3ncpoW/9Zi64gWaTr4AmkB/plIlGfgywUGh6Jp8gWaeE1qGEfFt8BJx0NwsmGQfxvaW4hWM/Gu72NXudDzq19aidqnlEaP3RtlGL9t3i2Hz769NwLVltaN4y48NH/6yB5tNUtqdxB8Yw9pI2dgKTqUlrwQmzR5ffbr6O07KmW4GhQAnGcZNvlZKNtA6xUEh8KEsdJgqVxdjxE7LeffmGJ6WinZGFA2MniDkcZBrgdLNrHRHUwTFBMMo/f0Vlemoyd9CtILyyn53R5kIttaKp9DqxJQj+s0wAAHUtJREFUtjVIUNh/55JtxPnv+CyNsId8Zv+BjuEH2MXR8qJi/bbvtxnEjoCI/5WKa7VC7V+9fI3pbG8jQi9ebmNl4+Via/tFxLuLbsRvXLXJ2iL2a4f9R8f5Lw7A78B/S20d8H322ypT613t26q/9M8PYWtbSsFcujROQMYEJGPwtP+FccRJYYu337lmt6kjOeItHNTzCchAXwsHyHb8gSI0Sodazkc4yB6/ykG9Yt0aw3s/TTDvwXQyeYNBJ5Tu5VxNtK4Nepz3ESxEH8hpamk26zdtsgNcvJWtL7GxjWJ/hv86S8lmprBuxvuPUUUEtMlW2X78nP8Yc5BjY5Mtfrrl9/U6GcwuxoDf6WPBEn/wM4bIajdtNc3NtLHrpXi3tLaa7Vt2hsaPb3um/4oNfAr5r+g8dW3L+pG3Pnv1mjxk+dAXUkwz3qTJmIAkBd/RLPqt9LbupvoNFc/OgTUYC3A9Y/LxYAIFaCQ4tic8bhCJDDf4eCzSZMYstEX5Ozo6zKateBiBin/oqG09D9TBgomlbZ1goI3Con2Vx7TGbN1eZzo77AUZ67C6BM8y/BcIrwnN/gcRoKFNHcePNigRLwtELRcRwC380hBayArxc8dOXhs/bMysGU6uL8uyiBzoY3pIVn0VdATQaXbU7WRYb8a7fmc9qRNbAntgGP45Ws4nxIrjxuONCHz/xXJHa7tZq3/tvG9OY8eeUr4HizmFuRUqcRPwlBBFgZ1/br9nBznNM0TCIQIQMhc2zjAihsEEvA0UkwoVk4ADeIAEbCmEnoMLFBHvbmpgHFab+RDUHla6yWX3aNr3J5Y73Az2bm4iRg+nwEdlk/ckTFMLzjnV28BQtQ/0zgVu2F4u/8EUdpohDIUuu/CgIjrVrjyEzuQnmGi2ayEKZDEHM1ox0hZqyCMwg7pNc1NwVLaxldpuw+TF0IeVGO8N2F7agnNO9hjGYFLZP0Fbm6UKQOjTIhUaxGX9t2JzVkRb8eulP9iRkyg/MmNuxU3Ag/PLyU6xzaybBie1wEk+HIOzWBAwz3FtKxoEjObAkhTqgIb/GGH5MTEZLTIrvWdu72/YQxgaCG7y2MnoYNQHzh1exk1WO5B4cgJPC3TCBqofaPEOEiorObGwx+2tuUPk9OcORy2v+gwSbZNUFs3+W2mAAYgtflb/dW/AAsAQHCqixxZw3IRAXEBbAsj6pcnUbm/HhMxtbbT8BAdPBfms5S/btlOzZ+P9l10kP1Q8++FLrP8Air1KwG5xPIQ/JDJPZ1nDc3gOupRyUJQ5iGKAmR40C2+1VjTSU7lS3KESO2xDQDFhONUYVDJgAAMPQUDLUUIlk1HoRCbWIX4+PDP0m+YjmQ34de3t5qc7cXhkJ5F/XscwbE6RUDvxeCJGJqFOXuW1NsGq37QMMS90SugAHmHv2cJ2tp9gKGonAdl5eMvuwVkGASI+Qo7zX5qEIZxAAXFF5XJcrP9EiuixfhYPRiub6ahnzWC7AlqxBdQK4zabJrYBozDIQLKGD6+BeC5rWlrNzRvwDHLPxPuOHR3m2RbKjy010E2GiF+wkYzK6j8MtvbbFuInvCoxWb2no96N7WQcGVQZP40QNwEnZLAVAOgwrZU6EP3BKCIoEDZwGgDQyIAhCOKEpHIDfQLYJIPfyUX4mEZowV9BD3DPmTELZFzubWwyV9TtMB045NSBoYef0dpNRAwgOxGZxybd2gDzrmsaan5LE1DL9KnTTCUeHld7CAE6XjyY0AsGvuMPzoHP+Q8i9l+pQROUkP+WnwQE/JZc1bJNnu2wimFEIHoDu9ke5bcqhUY6IhMEtFidU6ZOcsbds32X+cLKjRRvu3GLxtjvFxDvK2rbzc93IIdSxk8aR78ppBOInLO2wFa2UUBMzL6iTz12jWlgvxVWYNXS2Rg3XwqRkjG3gpFUiJgiaDnBxCeBgACMDIkEBw4gFD8+ILFFg8ksRMNbMQQUeBFj9pk2zTS1NtGFERwS0Ych2zrMmbU7zYnDq82Zo4eaIZhcSD4YsGdDzRPOwhgPYdRHxSbSISQ17mweYv7UGg7XxHHjzdSJwSAkDikhhyzICmQ/GJTFf8JprITT8kOmzFS2TY4Owv4H9AJncgWyTaKTXSMkD1rCc5gB1GLtd+oYx1zMw2SEnDB5vGltbTP1O+XF8CVNLebU59ebN44bbs6ePobiDZ7i4v2Tug7zm8hh56gxo8zYCWPIf9ro0B+8dKY529HI5z9zKUef1uERVQZTggFmw0C+uiC5TFODgqhhcC0eHwoFSdBm06gL2tDgA8LSYcAsmDPPjBw+0qzesM5580Bzu8FCG05z4rBKc3JNhZleBWF2jwdLdPKxrG6zlS6y3Ed7unvbqmir7kS5xj7TppspE+gBenYlIPBtVr88rONnTyxC6Rjp+ezLEkahlDD5XCJIJoynTWURSKC2YW0GTGWpYSwVQCpx+hlh+SF0+sypZtiwoWZrbZ3wEPCvu5p4QbxPHltj3jZumNlnKJiyx7uWUH/a1WXurqeX0sRYlqcrTPYxE0ZzqmEebAvIpJXVf9CzoIBD5fZ1DV9ChRwrycrb6j7P8nwx3Kbo4CFgt+ViLVjJllhGAgIl6nPyu+AH/BJ8SQzanfSo2LLVq8yO+l0h/0rtjB09xsybNYv9kLTKlljlqt1awy9p95L/FD8klR+ktkZJW/RjLwp7bJSJQvrgYRjS72wWAYH9Hk6IidbKI75NazebPQ10RThbAY9TFBCxKNcN90aMHG4mz5jEF31gh7CT/apf7Web4UMW/62dTk2RjVuOv69ITmGjIze44ErP7wERMuc8JUvSTAZINiS5Yg/jKLKaAg448erhJrLH9JyFMH+QEOInFHgWzZtPgit4Eq7dtMHgRm4xBVv4mVOmm7FjxrD9ot7qd9bKRBMffH9Abe1G7ejD9oNDeD0KcgR+JPKfVZLMSPyg2/G7PIi2wC5mthZAhvQlN7794iP7DyJPHnTMmDOdfWjY3WjqaneYNjwho8XKVNlRsPSFqLq62kyYMs4MHzUc1jNKx4kXHYJrXNVk4o/6H4qfau0/ddknoLrGocSK44cGQ3hyOBqeKZJUTYxQKYXj4sQCyiKtOCSD4ksyrWzFW0KmpfaEsWPNOJo8WlpaWsz2+nrTTE+ytNMV0zZaUJD4odVDTE1NjRlHe7qaYbjoZYcb6yCJ+IdO5rBrq9+B2CbueSulJRBEUtGNCdeCtnIFzzS2qQMPZPKdDuF3/hMCOMZbRm6L+VaXVWzxoGY02S93boGQ4rtkIVQJv+rRZGr8mY6Qo8aMNCNH46EPsaattd007GkwbS3tpqODlnacf9PTHtVVZgh92qN6aDXRD+fal4W22iX+Y8KpFSSdOln9d9pZVb9dlX8CUkQ4MDYASIIGlYNHOfQPjxSnEcIWT4JtIUgCGG3RASMjR5IAlJIwPysCkLWH+EE7jCbWjClT0BQcCVX+EAyvFtFoh35nAdO6XoZs3SuInSTN8rNcdAmR038bP9BzYd3sCHd5wOHeHxRQ0diwRQy2ewU2QPBKo05y38NDVuB/wA8YZ8P5z1qcTl8/G4OVn3+Qk//VQ6vM+IljOYZQq/4D7WyjNorbW0uX1l7+yQ72PzDW8YtlsDc8fqLyndh+0ij1smqGG3Kex2FDNDhAiJfEDMHUIAkNEqKjG8HCy7oMEgaEn/sM0x4nWSBCS2vowp8oUIVBTSTAsTRk0fbFRmYHRPgF6ZLtLIBs+scgERLBKJ7lEw2wrAk2QaewocNtGSRCw5KsAOVn2awINCwMa5YJWTCMa8HatuKJgA1QoczKK9jEUNhPDe6xjRH/Lb+KsZKIQVoh/0WUyGf/ov6zKtHLeOjCJIE4oVULY/1nQhDjn/7YhCz+W/1ijErt33X594AcXI4SB9iOBhcFBFESqzSEQhIlsjy4tS20skVjal1BADKCNSrlF5CTxUgebBbhGKw+5lMLNblMhJXI8fitRlatNoIO5vDgQYcK7OZajUPfmpDhPwjVfuYSWcxPTG6wWpz4JFheQ67y+21F2smGrthARErPNXVt36YABgi5lRfYDhmKkxo4Ys/iP4uxeqUd67/lt9QkUnVY2cAr0rUCGucPaNQ3R9+/G2XfA8Jd5EjyhNRosSEkBAYrBhYKBzuIrgsvcKHBB4EILv6Y3tsKevzgcwUjyxadMMwPmBuYbIGVKcQQJypYIXccvyjnDQWonTxh5TVIxNxAv5XICMZZ21SusvuuhPwXi0SfGOcgtiEiQgIC/axH3QGN7z/1fTa0uQ92i1A7lc7tBYlAYWKA8IiPDuIJ4hAE8QOhV7iHFS2qXijsmiphkb0oEwrKkzJwmuXfA1J0NHAIjgYvHCO7V2NaabuQeQnRpHOQHYE0BAepHj8GWAy/WuGLCPH7PN5wCmSFrYcc4BjPA1nw4nfgP/QKRuvAAuXPOOeJ2sICaIUaCmwR2wTopOfzX2UhZqzH8qMN2Vn4iVjVwnGiE37Ry0yMhwiGoYG243MWAhrwEz6v/yKJ17KCLTbnLN/LP2ECnR5LP26WfQ+oqUIgXJtDZoOD5OHPJifU9nksnmMnMbc8GnBPutJqTUwqP8rPe16m8/h9Sy3Y53eUxKcDJsCzB1YN/KKmHciOT0BiU9R/YsAfStCy9kcEiM44/5kdTLaRxX/SEO+/x29FBP7BLimAOf8DaKilJoAWfLrw5ARSJ68lVDpoUD3cVkHo2MI22fgFvhKXMmqtDAOgLv8ekKLh4mCDqMHX2o8LBzUMcPwScELygBYiwCgHYRrLD72+vAx+lkNUbEggz7KzTLbeOuDLYhrlVwavzyx2xW6zDhGkTT6kjAwsp4OJSDDhrXqqbYv1QKlMPiUFxPEzzu/bNoh9fuj3BDh+ut4Pbbn9Jxq1H8QsV2zE1BZzSYKAYAARgUz4tGagXTkfRZjoV5wTpHpVjlVFdM4e6BADfPH9vl3+PaAGPxIOgBnlgirBwxYVJQgkdyPcTCEIYEgQy8OKt4h5+B0x+Cw/ZADOiRO4VSCVZycAbB94WHNAInsUJmCMY6MGixdS5mOII4AsmJ/Nf8voKlCzAQn9d4y2Ify8FjHiv8YvZK2o8iWI/xGfSE6G/8pkdUgXfPLnq4Etyu/yDyAVW0mHe4DQIv8CAUjt9+JqmQZEVfYJiPEkwZQtImKE+z6uIGDa99qg4PQyG0eWg8wBJ3rGM9jjB4/K8tqA8dYWSolHaUDKcOBl3DucKmAwE1oCTy7EKT/aKOobTEMpyH+id7ahzQJQizSYgQIaNLnv4sMox890AmJ+WM/stOI3yFHTwnBqqHeqXxQI3hGqPFYsHeW3KNFPQNZFQIfnhsA1RswDWk+etsHPMhgv0pXM+Q+wz++3hWXArcs+ASWgFBmEMxIgDqRGFaGybcDBARafnwczAZmMs8MEMnnQBAPYPJksy05sscIOXqFkHpkkwo+2s4OaPFgsP1iislka/BKkTDi1A9LZFtGc1X+gLT9XxMcg4vX5xU7AiEoUsq2OXfWq/5ZfNxJiBVuslFRj44ONGEQGetlW6ifzH4d7sInWpERjBHncFsN1NoKSC3AODwj4UdFf2H+BhvxnEIwGrURA9QI1UEvZzwGPa/lw0bGYPmkfM3pk8MhY0YJSxjQCWSKwp3G32Vy3MQu298Fl3wP2vgupxjQCAzcC6QQcuLlLLR8EEUgn4CBIYurCwI1AOgEHbu5SywdBBNIJOAiSmLowcCOQTsCBm7vU8kEQgXQCDoIkpi4M3AikE3Dg5i61fBBEIJ2AgyCJqQsDNwLpBBy4uUstHwQRKPujaAMtJtt2bDOPPv2YWb5upVm1fpXZvK3WdLmfn473pqqqysyaNtMce+SrzHEvezV94Kmkn9OIV5JC94oI7HUTcOmqF82NP7/JrN20tugE47fx1mxcy8sd9/zCyZk8YbL58GkfMK864hgHSxtpBHJFYK+ZgDfccaP526OlfdU4VyCBw97067dcy2RDqoaYc957tjnpmBPzsaX4vTgC8l6HFwB6xUPeEfFghTSXrV1aCHmItifehnhx1Uvmom9eLK/BhLT1Xue4o15tzj/jk6Z6SHXvKU01xUag1LchFs45IFZuUiC9Chaac4P6IszTL/zHfO4bXyhp8g0bOsxMHDfB4Lyv2PLwk4+YX/zxl8Wyp3yDOAKD+hD0O7d/L3Hq3vSaN5oPvP0MM7xmeGIeEG7cusnc848/mb8/dh9/5t5nHkGyLjrrQnPEAYf74LSdRsBFYNBOwFUbVtOPsuxwjmZrYML94hu3049sFncwsM+UGebsd5/FCybjZTdcwT+Pduk5l9BvUozPpjaFpxHgCAzaCbihdkOiFL/5NScXPfmiCjAZb778+1Fw2rcR2Ll7p6nbuZ1+9KbGjB01hr5+MJo/j7E3B2jQTsDpk5Pdm3v6hf+aM9/+/n4xBs65/DyTZMNx1/V30q84Dc1r8x8X/8nc/Ktb89KdS1dr3/jqN+SkK9Q23Ka55tZvJvIHiveZOoNu4XzQHHXwy3LaMdiQxR13DYAozN1nTiIrV9Oh6kcuPZu3zIkYUqKcEcBDDW879zRz3pWfTjz5IHDjlk3m8huvNKec844ev12U04FeRg7aPSAu+X/wHWeaH//2trwh3bp9q/nQJWcx3bRJ08zJx73BHHP4K830ydPy8qYE4Qh867bvhAFF9HDPFufv73nz/xbBPbBYBu0ERBpOPeltZgU9YobbAElLbV2t+cnvfspLlGfapKnm0EWHyLLwEPrRz3FRkrRfpgj8/I93mta21n5zelAmtzLEDOoJCG8v/NAF5nWvPMFc8f2rDB4hK6XU1m0xWOKeqDls0aHmnW98hzls/0NLUTFoePFY3qknncIbKxxV1O+pN6s3rjGYWKvWr07k5+J/P5hOwESR6udERx54hPndd3/ND1t/+6ff5Wc4y23yMy89a7BoOXjhQeaSj37ejByBn2reewqOEr598TfNiJoRIacxIbEcfcjLzfZd283ZX/kE7+FCRJHO9l07zLrN683s6bMimMHTHfR7QD9V82fNN9+55FsOhAez77r3t+bJJU+V9LSME+g1lix73vzfZ99vZk7dhwdkkquWHvuAbd5w6fV5r9BOHDfRnExXXf/wwD15/Vy68sV0AuaN0gAlOGD+/ubSj1+cYT0OM59btsQsWb7EPPvSEt5iZxAlBGzYstG86/z/M9dc+DWzaO7ChFyDn2zqpCkJnSzp0eSEOvqObK/aAyYNMw6jsLz+Va/LYOns6jSP/edx84f77zHL1izPwMcB8Hz7ZTd81fz06h8ZvCWRljQCGoF0NGgkEtZVlVX8Ei5exEW5//EHzPW335CXu6Gpwdz9wB/NO17/9ry0KcHeE4FBeyO+t1L4Onrf7+Pv+WgidXg6JC1pBPwI7FUT8K8P/81soZvu5S77TNsnkUjsBctRSnxlsxwmpDLKFIFBfwi6hu49ff2Wb5hN9KaClrGjx5rLPvklM3/mPAWVVN/1198m4p+V53L6qIS3LFasXWkOWnBgXp35vm2TV0BK0OMRGJQTsK29zfzgzpvNfXR+FldwU/j8qz7DKFwSP+Ntp/MHlgq5VYCnNP64+M/mtt/fHqciFvbGY18fC1fgwQsOMniDP1/5xo+vMzdddmPOy/3/Wfpf88O7fpxPVIrv4wgMygmIe0f/oKcokhTcFMbzi3HPMOK1mTH02kxjU6NpbG5MIi4rDS6+5Pt62iELD+b7klmFWARuUL/zU+/hK6rzZs7lK7ajRo4ym7fW0qN3K0wD2ZuWgRGBQTkB8TgYnnz53s+/b+595O9FZ6KltcVgKbXgdafT3nBqXjF4c/5lBx1pnnr+6by0IOjo7DDL167gJRFDStTvIjCoL8Kc+96Pm9/fcBc/VY/bB71d9qUnb3553R2JJp/a9uVzv2hecejR2k3rQR6BQbkH9HOGT028963v4QXnbT/67U94r9hTFyjwHRi8BpXvBVffxmj7krM/b/717BPmWnqhFeezhRZ8eOtsujXSSXvIJC/kFio/pS9fBAb9BPRDhS+cffw9H+NF4fiOy4NPPGSefO4ps21nndndsDvRc6HjRo8z82fNM/vOns8fXcIFlHKWVxz6coM331HwWNw/n/k31c/RB4XXZdiHc1W8u3jSMa8zJ9HTO8Opj4I34tPSvyNQETVvsH0XNOpf2t+7I5B+F3Tvzn/qfRqBUAQG9UWYkKdpJ41AP4xAOgH7YVJSk/aeCPSrCdjWUfgVv70nVamn5YhAfxtj/WoCtpbhpnc5kpTKGLwR6G9jLG4ClvQKMt2DKpq/oXkP3fdqHbzZTz3r0whgbGGMFVtobHcVy2v5MvjjJuDmUpTQ7NtSCn9tXUnqS1Gd8g7yCJQ6tmhsl/ouW200xHETMHhvJ0qdoF9dNWRdArKsJC1tzWZ9bfriatYApYiiIoAxhbFVSil1bJPujLkVNwEfLcXIsSPHlXwM2dzaRJ8OXJn3t9pLsTPl3TsigEcOMZYwpkotZRjbGXMrbgLeXYqhE8ZNOo6OlUs+jsTVqhXrX6Ivkm0rxZyUdy+OAMYOxlA5rnxiTGNslxjOjLmV8SgaFNDjaDiMLPprqA1Nu5/atG1jWX/mZvyYCWbSuCl7/c9ZlTgABj07PtdRt2ur2bk7/29DFhKMGZP3eWrUiDGljOn1NIlnR3Vmm4BnEOFtUeJC+pu3bVi8p2nP8YXwJKGtos/6TRw7iX5fblw6GZMEbC+gwaSrb9hlttfX8Rsg5XZ59IjRi6dPnnl8iXLPpAn406iM2AkIInJqCVUlPeK/Ycv6B5taGl4bVVrOPl43GjV8NH0CfpQZWTOqbD+2WU4bU1nliwDO6RpbGugrBQ18S6GnXitTi0fUjHpw5tRZpY7hJTT5DlGZfp1rAs4kwrW0xJ0n+jJytut2bXtoR33da3ISpcg0Av0wAhPGTnpo0rjJpY7dLnJtDk3ADXEuZp2AIKa94OlU/SyOsRAYfU1666oNyztJXrKfrS1EeEqbRqDMEaDJsnn+zAVV9BWFpN/Pz2XB+0jeHdkIck5AMNGk+ThVN2YTUAi8fs/Ox7fsqD2mEJ6UNo1Ab0Zg6oRpj48dPb5cY/Qcmnzfz2V/3gkIZpqEn6bqulyCCsB1b67b+CC9GHl8ATwpaRqBHo3A6JFjFk+ftA/O9RLNiQTGXECTL/gpriwMiZXRJDyBZDyQRU5R4JbWpqXrt6wblx6aFhW+lKnECOBQc9bU2btqho04oERRUfYTSfY/osC4fuIJCGaaKPjRdFwdnYh+GUsXXax5ZOfuukPpinL6u89lDGwqKhwB+l7VrvFjJj1LF1fw6zolXWAMS+bedlofTJMv45nPGFoGFTQBVQhNxGuofaH2y13TRZu6rds3L9nT3LA/zXpM+rSkESguAjQZRg8f9eKUidMPposqk4oTkojrGpp4FyWi9IiKmoDgt4eNj1FzLvq9Ueh1ktUNjXs2NLc2d7Z1tI6g33yf2GW6R5puM5K2bKPIpqL96Q37Ux3liQANdEq1aaCztcZKU9FYVVW1feiQYU3Dhw2vGjVy9Myh1cPmlUdTIilriOpVZFNRj1+WPGApEkeRATjeHUVLWtII7C0RaCBHT6CJ92QpDpd8DAwDaBlNRryclvTJ6VKykfIOhAhgjL8cY77UyQdnS56AGjE7EXHjcgYtjys8rdMIDJII4HRrBo3zKeWYeBqTsk1AFUjGbaYFx8Q4vH0LLbgylJY0AgMxAhi7b8FYpnIsLUWd5+VyvOwT0FdGBv+Zlkm0YDKeSMtSH5+20wj0wwhgjOI+HgrG7p970saSL8IUYxxduBlGfB+iBZdt5xQjI+VJI1CmCKwlOVfT8iOabCV/zaFQm/pkAsYZSZMSb1/g4e/301LSa1Bx8lNYGgGKAB4iwcsFd9Bki307obej1G8mYC7HaXLiws7+tCyyy0KqJ9OCq6+64DbIgPCH7ExLaRHoJnbcBsA3BnXB1clltLxklxdpkmV8BIlw/ar8P1VCBX8ZbNBCAAAAAElFTkSuQmCC' +] + +const avatarList = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '' +] + +const starList = [ + '', + '', + '', + '', + '', + '', + '', + '' +] + +const flagList = [ + '', + '', + '', + '', + '', + '', + '', + '' +] + +const weatherList = [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '', + '' +] + +export default [ + { + name: '多彩标记图标', // 分组名称 + type: 'sign2', // 分组的值 + list: iconList.map((item, index) => { + return { + name: String(index + 1), + icon: item + } + }) + }, + { + name: '星期', // 分组名称 + type: 'weekday', // 分组的值 + list: weekdayList.map((item, index) => { + return { + name: String(index + 1), + icon: item + } + }) + }, + { + name: '头像', // 分组名称 + type: 'avatar', // 分组的值 + list: avatarList.map((item, index) => { + return { + name: String(index + 1), + icon: item + } + }) + }, + { + name: '五角星', // 分组名称 + type: 'star', // 分组的值 + list: starList.map((item, index) => { + return { + name: String(index + 1), + icon: item + } + }) + }, + { + name: '旗帜', // 分组名称 + type: 'flag', // 分组的值 + list: flagList.map((item, index) => { + return { + name: String(index + 1), + icon: item + } + }) + }, + { + name: '天气', // 分组名称 + type: 'weather', // 分组的值 + list: weatherList.map((item, index) => { + return { + name: String(index + 1), + icon: item + } + }) + } +] diff --git a/plugin/src/config/icons.js b/plugin/src/config/icons.js new file mode 100644 index 0000000..1caadce --- /dev/null +++ b/plugin/src/config/icons.js @@ -0,0 +1,5 @@ +export const obFileHyperlinkIcon = '' + +export const hyperlinkIcon = '' + +export const imgFail = `data:image/png;base64,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` diff --git a/plugin/src/config/image.js b/plugin/src/config/image.js new file mode 100644 index 0000000..5cd56da --- /dev/null +++ b/plugin/src/config/image.js @@ -0,0 +1,1329 @@ + +// 该文件请运行npm run createNodeImageList命令自动生成 +import business_ from '../assets/svg/business/-.svg' +import business__1 from '../assets/svg/business/-_1.svg' +import business__10 from '../assets/svg/business/-_10.svg' +import business__11 from '../assets/svg/business/-_11.svg' +import business__12 from '../assets/svg/business/-_12.svg' +import business__13 from '../assets/svg/business/-_13.svg' +import business__14 from '../assets/svg/business/-_14.svg' +import business__15 from '../assets/svg/business/-_15.svg' +import business__16 from '../assets/svg/business/-_16.svg' +import business__17 from '../assets/svg/business/-_17.svg' +import business__18 from '../assets/svg/business/-_18.svg' +import business__2 from '../assets/svg/business/-_2.svg' +import business__3 from '../assets/svg/business/-_3.svg' +import business__4 from '../assets/svg/business/-_4.svg' +import business__5 from '../assets/svg/business/-_5.svg' +import business__6 from '../assets/svg/business/-_6.svg' +import business__7 from '../assets/svg/business/-_7.svg' +import business__8 from '../assets/svg/business/-_8.svg' +import business__9 from '../assets/svg/business/-_9.svg' +import business_OAxitong from '../assets/svg/business/OAxitong.svg' +import business_changyongziyuan from '../assets/svg/business/changyongziyuan.svg' +import business_chuchashenpi from '../assets/svg/business/chuchashenpi.svg' +import business_fanwendengji from '../assets/svg/business/fanwendengji.svg' +import business_feizhengshiwendengji from '../assets/svg/business/feizhengshiwendengji.svg' +import business_gongwenjiaohuan from '../assets/svg/business/gongwenjiaohuan.svg' +import business_gongzuohuibao from '../assets/svg/business/gongzuohuibao.svg' +import business_gudingzichan from '../assets/svg/business/gudingzichan.svg' +import business_huiyiguanli from '../assets/svg/business/huiyiguanli.svg' +import business_huiyiyuding from '../assets/svg/business/huiyiyuding.svg' +import business_kaoqinguanli from '../assets/svg/business/kaoqinguanli.svg' +import business_qingxiujiashenqing from '../assets/svg/business/qingxiujiashenqing.svg' +import business_sannianjihua from '../assets/svg/business/sannianjihua.svg' +import business_tongzhifabu from '../assets/svg/business/tongzhifabu.svg' +import business_xiangmuguanli from '../assets/svg/business/xiangmuguanli.svg' +import business_xinxitougao from '../assets/svg/business/xinxitougao.svg' +import business_zhishichanquan from '../assets/svg/business/zhishichanquan.svg' +import business_zhongxindongtaifabu from '../assets/svg/business/zhongxindongtaifabu.svg' +import business_zongheshenpi from '../assets/svg/business/zongheshenpi.svg' +import education_DNA from '../assets/svg/education/DNA.svg' +import education_a1shilibiao from '../assets/svg/education/a-1-shilibiao.svg' +import education_a10yiliaoxiang from '../assets/svg/education/a-10-yiliaoxiang.svg' +import education_a11yiyongweishengzhi from '../assets/svg/education/a-11-yiyongweishengzhi.svg' +import education_a12huxi from '../assets/svg/education/a-12-huxi.svg' +import education_a13xiguan from '../assets/svg/education/a-13-xiguan.svg' +import education_a14zhutingqi from '../assets/svg/education/a-14-zhutingqi.svg' +import education_a15bingdu from '../assets/svg/education/a-15-bingdu.svg' +import education_a16yiyuan from '../assets/svg/education/a-16-yiyuan.svg' +import education_a17zhusheqi from '../assets/svg/education/a-17-zhusheqi.svg' +import education_a18xiguan from '../assets/svg/education/a-18-xiguan.svg' +import education_a19guaizhang from '../assets/svg/education/a-19guaizhang.svg' +import education_a2kouzhao from '../assets/svg/education/a-2-kouzhao.svg' +import education_a20shuye from '../assets/svg/education/a-20-shuye.svg' +import education_a3chuangkoutie from '../assets/svg/education/a-3-chuangkoutie.svg' +import education_a4lunyi from '../assets/svg/education/a-4-lunyi.svg' +import education_a5mianqian from '../assets/svg/education/a-5-mianqian.svg' +import education_a6jiancebi from '../assets/svg/education/a-6-jiancebi.svg' +import education_a7xinzang from '../assets/svg/education/a-7-xinzang.svg' +import education_a8DNA from '../assets/svg/education/a-8-DNA.svg' +import education_a9tizhongcheng from '../assets/svg/education/a-9-tizhongcheng.svg' +import education_abitong1 from '../assets/svg/education/a-bitong1.svg' +import education_ashu2 from '../assets/svg/education/a-shu2.svg' +import education_ashu4 from '../assets/svg/education/a-shu4.svg' +import education_ashu5 from '../assets/svg/education/a-shu5.svg' +import education_ashuben2 from '../assets/svg/education/a-shuben2.svg' +import education_ashuben3 from '../assets/svg/education/a-shuben3.svg' +import education_ashuben4 from '../assets/svg/education/a-shuben4.svg' +import education_axueshimao1 from '../assets/svg/education/a-xueshimao1.svg' +import education_baichui from '../assets/svg/education/baichui.svg' +import education_bijiben from '../assets/svg/education/bijiben.svg' +import education_bitong from '../assets/svg/education/bitong.svg' +import education_chizi from '../assets/svg/education/chizi.svg' +import education_chongdian from '../assets/svg/education/chongdian.svg' +import education_citie from '../assets/svg/education/citie.svg' +import education_daima from '../assets/svg/education/daima.svg' +import education_deng from '../assets/svg/education/deng.svg' +import education_dianliushiyan from '../assets/svg/education/dianliushiyan.svg' +import education_diqiu from '../assets/svg/education/diqiu.svg' +import education_diqiuyi from '../assets/svg/education/diqiuyi.svg' +import education_fanyi from '../assets/svg/education/fanyi.svg' +import education_gongwenbao from '../assets/svg/education/gongwenbao.svg' +import education_heiban from '../assets/svg/education/heiban.svg' +import education_huiyi from '../assets/svg/education/huiyi.svg' +import education_jiangbei from '../assets/svg/education/jiangbei.svg' +import education_jiaoxuelou from '../assets/svg/education/jiaoxuelou.svg' +import education_jinpai from '../assets/svg/education/jinpai.svg' +import education_jisuan from '../assets/svg/education/jisuan.svg' +import education_jisuanqi from '../assets/svg/education/jisuanqi.svg' +import education_naozhong from '../assets/svg/education/naozhong.svg' +import education_qianbi from '../assets/svg/education/qianbi.svg' +import education_sepan from '../assets/svg/education/sepan.svg' +import education_shiyan from '../assets/svg/education/shiyan.svg' +import education_shouji from '../assets/svg/education/shouji.svg' +import education_shuben from '../assets/svg/education/shuben.svg' +import education_shuxie from '../assets/svg/education/shuxie.svg' +import education_sousuo from '../assets/svg/education/sousuo.svg' +import education_suanpan from '../assets/svg/education/suanpan.svg' +import education_tianping from '../assets/svg/education/tianping.svg' +import education_tingzhenqi from '../assets/svg/education/tingzhenqi.svg' +import education_tiyu from '../assets/svg/education/tiyu.svg' +import education_wenjian from '../assets/svg/education/wenjian.svg' +import education_xianweijing from '../assets/svg/education/xianweijing.svg' +import education_xiaoheiban from '../assets/svg/education/xiaoheiban.svg' +import education_xiezizhuo from '../assets/svg/education/xiezizhuo.svg' +import education_xueshimao from '../assets/svg/education/xueshimao.svg' +import education_yuanpan from '../assets/svg/education/yuanpan.svg' +import festival_celianggongju from '../assets/svg/festival/celianggongju.svg' +import festival_chunjie from '../assets/svg/festival/chunjie.svg' +import festival_duanwujie from '../assets/svg/festival/duanwujie.svg' +import festival_ertongjie from '../assets/svg/festival/ertongjie.svg' +import festival_fuqinjie from '../assets/svg/festival/fuqinjie.svg' +import festival_ganenjie from '../assets/svg/festival/ganenjie.svg' +import festival_gongju from '../assets/svg/festival/gongju.svg' +import festival_hushijie from '../assets/svg/festival/hushijie.svg' +import festival_jiaoshijie from '../assets/svg/festival/jiaoshijie.svg' +import festival_laodongjie from '../assets/svg/festival/laodongjie.svg' +import festival_muqinjie from '../assets/svg/festival/muqinjie.svg' +import festival_nvshengjie from '../assets/svg/festival/nvshengjie.svg' +import festival_qingrenjie from '../assets/svg/festival/qingrenjie.svg' +import festival_qixi from '../assets/svg/festival/qixi.svg' +import festival_shengdanjie from '../assets/svg/festival/shengdanjie.svg' +import festival_shuang from '../assets/svg/festival/shuang.svg' +import festival_yuandan from '../assets/svg/festival/yuandan.svg' +import festival_yuanxiaojie from '../assets/svg/festival/yuanxiaojie.svg' +import festival_zhongqiujie from '../assets/svg/festival/zhongqiujie.svg' +import festival_zhongyangjie from '../assets/svg/festival/zhongyangjie.svg' +import food_binggan from '../assets/svg/food/binggan.svg' +import food_binggun from '../assets/svg/food/binggun.svg' +import food_bingqilin from '../assets/svg/food/bingqilin.svg' +import food_boluo from '../assets/svg/food/boluo.svg' +import food_caomei from '../assets/svg/food/caomei.svg' +import food_celianggongju from '../assets/svg/food/celianggongju.svg' +import food_chengzi from '../assets/svg/food/chengzi.svg' +import food_dangao from '../assets/svg/food/dangao.svg' +import food_fanqiejiang from '../assets/svg/food/fanqiejiang.svg' +import food_gongju from '../assets/svg/food/gongju.svg' +import food_hanbao from '../assets/svg/food/hanbao.svg' +import food_jiandan from '../assets/svg/food/jiandan.svg' +import food_kafeibei from '../assets/svg/food/kafeibei.svg' +import food_lajiao from '../assets/svg/food/lajiao.svg' +import food_naixi from '../assets/svg/food/naixi.svg' +import food_niunai from '../assets/svg/food/niunai.svg' +import food_pingguo from '../assets/svg/food/pingguo.svg' +import food_pisa from '../assets/svg/food/pisa.svg' +import food_putao from '../assets/svg/food/putao.svg' +import food_quqi from '../assets/svg/food/quqi.svg' +import food_regou from '../assets/svg/food/regou.svg' +import food_shutiao from '../assets/svg/food/shutiao.svg' +import food_sudaqishui from '../assets/svg/food/sudaqishui.svg' +import food_taozi from '../assets/svg/food/taozi.svg' +import food_tiantianquan from '../assets/svg/food/tiantianquan.svg' +import food_xiangjiao from '../assets/svg/food/xiangjiao.svg' +import food_xigua from '../assets/svg/food/xigua.svg' +import food_xilanhua from '../assets/svg/food/xilanhua.svg' +import food_yingtao from '../assets/svg/food/yingtao.svg' +import food_yumi from '../assets/svg/food/yumi.svg' +import medicine_a1shilibiao from '../assets/svg/medicine/a-1-shilibiao.svg' +import medicine_a10yiliaoxiang from '../assets/svg/medicine/a-10-yiliaoxiang.svg' +import medicine_a11yiyongweishengzhi from '../assets/svg/medicine/a-11-yiyongweishengzhi.svg' +import medicine_a12huxi from '../assets/svg/medicine/a-12-huxi.svg' +import medicine_a13xiguan from '../assets/svg/medicine/a-13-xiguan.svg' +import medicine_a14zhutingqi from '../assets/svg/medicine/a-14-zhutingqi.svg' +import medicine_a15bingdu from '../assets/svg/medicine/a-15-bingdu.svg' +import medicine_a16yiyuan from '../assets/svg/medicine/a-16-yiyuan.svg' +import medicine_a17zhusheqi from '../assets/svg/medicine/a-17-zhusheqi.svg' +import medicine_a18xiguan from '../assets/svg/medicine/a-18-xiguan.svg' +import medicine_a19guaizhang from '../assets/svg/medicine/a-19guaizhang.svg' +import medicine_a2kouzhao from '../assets/svg/medicine/a-2-kouzhao.svg' +import medicine_a20shuye from '../assets/svg/medicine/a-20-shuye.svg' +import medicine_a3chuangkoutie from '../assets/svg/medicine/a-3-chuangkoutie.svg' +import medicine_a4lunyi from '../assets/svg/medicine/a-4-lunyi.svg' +import medicine_a5mianqian from '../assets/svg/medicine/a-5-mianqian.svg' +import medicine_a6jiancebi from '../assets/svg/medicine/a-6-jiancebi.svg' +import medicine_a7xinzang from '../assets/svg/medicine/a-7-xinzang.svg' +import medicine_a8DNA from '../assets/svg/medicine/a-8-DNA.svg' +import medicine_a9tizhongcheng from '../assets/svg/medicine/a-9-tizhongcheng.svg' +import tools_gaizhui from '../assets/svg/tools/gaizhui.svg' +import tools_ziyuan from '../assets/svg/tools/ziyuan.svg' +import tools_ziyuan_1 from '../assets/svg/tools/ziyuan_1.svg' +import tools_ziyuan_10 from '../assets/svg/tools/ziyuan_10.svg' +import tools_ziyuan_11 from '../assets/svg/tools/ziyuan_11.svg' +import tools_ziyuan_12 from '../assets/svg/tools/ziyuan_12.svg' +import tools_ziyuan_13 from '../assets/svg/tools/ziyuan_13.svg' +import tools_ziyuan_14 from '../assets/svg/tools/ziyuan_14.svg' +import tools_ziyuan_15 from '../assets/svg/tools/ziyuan_15.svg' +import tools_ziyuan_16 from '../assets/svg/tools/ziyuan_16.svg' +import tools_ziyuan_17 from '../assets/svg/tools/ziyuan_17.svg' +import tools_ziyuan_18 from '../assets/svg/tools/ziyuan_18.svg' +import tools_ziyuan_2 from '../assets/svg/tools/ziyuan_2.svg' +import tools_ziyuan_3 from '../assets/svg/tools/ziyuan_3.svg' +import tools_ziyuan_4 from '../assets/svg/tools/ziyuan_4.svg' +import tools_ziyuan_5 from '../assets/svg/tools/ziyuan_5.svg' +import tools_ziyuan_6 from '../assets/svg/tools/ziyuan_6.svg' +import tools_ziyuan_7 from '../assets/svg/tools/ziyuan_7.svg' +import tools_ziyuan_8 from '../assets/svg/tools/ziyuan_8.svg' +import tools_ziyuan_9 from '../assets/svg/tools/ziyuan_9.svg' +import travel_banshouli from '../assets/svg/travel/banshouli.svg' +import travel_chuhangshijian from '../assets/svg/travel/chuhangshijian.svg' +import travel_ditu from '../assets/svg/travel/ditu.svg' +import travel_fengjing from '../assets/svg/travel/fengjing.svg' +import travel_gonglve from '../assets/svg/travel/gonglve.svg' +import travel_hangli from '../assets/svg/travel/hangli.svg' +import travel_huafei from '../assets/svg/travel/huafei.svg' +import travel_jipiao from '../assets/svg/travel/jipiao.svg' +import travel_jiudian from '../assets/svg/travel/jiudian.svg' +import travel_lvban from '../assets/svg/travel/lvban.svg' +import travel_meishi from '../assets/svg/travel/meishi.svg' +import travel_menpiao from '../assets/svg/travel/menpiao.svg' +import travel_paishe from '../assets/svg/travel/paishe.svg' +import travel_qianzheng from '../assets/svg/travel/qianzheng.svg' +import travel_shangdian from '../assets/svg/travel/shangdian.svg' +import travel_tianqi from '../assets/svg/travel/tianqi.svg' +import travel_youlechangsuo from '../assets/svg/travel/youlechangsuo.svg' +import travel_yuyanfanyi from '../assets/svg/travel/yuyanfanyi.svg' +import travel_zhuyishixiang from '../assets/svg/travel/zhuyishixiang.svg' +import travel_zuche from '../assets/svg/travel/zuche.svg' +export default [ + { + "name": "商务", + "list": [ + { + "url": business_, + "width": 100, + "height": 100 + }, + { + "url": business__1, + "width": 100, + "height": 100 + }, + { + "url": business__10, + "width": 100, + "height": 100 + }, + { + "url": business__11, + "width": 100, + "height": 100 + }, + { + "url": business__12, + "width": 100, + "height": 100 + }, + { + "url": business__13, + "width": 100, + "height": 100 + }, + { + "url": business__14, + "width": 100, + "height": 100 + }, + { + "url": business__15, + "width": 100, + "height": 100 + }, + { + "url": business__16, + "width": 100, + "height": 100 + }, + { + "url": business__17, + "width": 100, + "height": 100 + }, + { + "url": business__18, + "width": 100, + "height": 100 + }, + { + "url": business__2, + "width": 100, + "height": 100 + }, + { + "url": business__3, + "width": 100, + "height": 100 + }, + { + "url": business__4, + "width": 100, + "height": 100 + }, + { + "url": business__5, + "width": 100, + "height": 100 + }, + { + "url": business__6, + "width": 100, + "height": 100 + }, + { + "url": business__7, + "width": 100, + "height": 100 + }, + { + "url": business__8, + "width": 100, + "height": 100 + }, + { + "url": business__9, + "width": 100, + "height": 100 + }, + { + "url": business_OAxitong, + "width": 100, + "height": 100 + }, + { + "url": business_changyongziyuan, + "width": 100, + "height": 100 + }, + { + "url": business_chuchashenpi, + "width": 100, + "height": 100 + }, + { + "url": business_fanwendengji, + "width": 100, + "height": 100 + }, + { + "url": business_feizhengshiwendengji, + "width": 100, + "height": 100 + }, + { + "url": business_gongwenjiaohuan, + "width": 100, + "height": 100 + }, + { + "url": business_gongzuohuibao, + "width": 100, + "height": 100 + }, + { + "url": business_gudingzichan, + "width": 100, + "height": 100 + }, + { + "url": business_huiyiguanli, + "width": 100, + "height": 100 + }, + { + "url": business_huiyiyuding, + "width": 100, + "height": 100 + }, + { + "url": business_kaoqinguanli, + "width": 100, + "height": 100 + }, + { + "url": business_qingxiujiashenqing, + "width": 100, + "height": 100 + }, + { + "url": business_sannianjihua, + "width": 100, + "height": 100 + }, + { + "url": business_tongzhifabu, + "width": 100, + "height": 100 + }, + { + "url": business_xiangmuguanli, + "width": 100, + "height": 100 + }, + { + "url": business_xinxitougao, + "width": 100, + "height": 100 + }, + { + "url": business_zhishichanquan, + "width": 100, + "height": 100 + }, + { + "url": business_zhongxindongtaifabu, + "width": 100, + "height": 100 + }, + { + "url": business_zongheshenpi, + "width": 100, + "height": 100 + } + ] + }, + { + "name": "教育", + "list": [ + { + "url": education_DNA, + "width": 100, + "height": 100 + }, + { + "url": education_a1shilibiao, + "width": 100, + "height": 100 + }, + { + "url": education_a10yiliaoxiang, + "width": 100, + "height": 100 + }, + { + "url": education_a11yiyongweishengzhi, + "width": 100, + "height": 100 + }, + { + "url": education_a12huxi, + "width": 100, + "height": 100 + }, + { + "url": education_a13xiguan, + "width": 100, + "height": 100 + }, + { + "url": education_a14zhutingqi, + "width": 100, + "height": 100 + }, + { + "url": education_a15bingdu, + "width": 100, + "height": 100 + }, + { + "url": education_a16yiyuan, + "width": 100, + "height": 100 + }, + { + "url": education_a17zhusheqi, + "width": 100, + "height": 100 + }, + { + "url": education_a18xiguan, + "width": 100, + "height": 100 + }, + { + "url": education_a19guaizhang, + "width": 100, + "height": 100 + }, + { + "url": education_a2kouzhao, + "width": 100, + "height": 100 + }, + { + "url": education_a20shuye, + "width": 100, + "height": 100 + }, + { + "url": education_a3chuangkoutie, + "width": 100, + "height": 100 + }, + { + "url": education_a4lunyi, + "width": 100, + "height": 100 + }, + { + "url": education_a5mianqian, + "width": 100, + "height": 100 + }, + { + "url": education_a6jiancebi, + "width": 100, + "height": 100 + }, + { + "url": education_a7xinzang, + "width": 100, + "height": 100 + }, + { + "url": education_a8DNA, + "width": 100, + "height": 100 + }, + { + "url": education_a9tizhongcheng, + "width": 100, + "height": 100 + }, + { + "url": education_abitong1, + "width": 100, + "height": 100 + }, + { + "url": education_ashu2, + "width": 100, + "height": 100 + }, + { + "url": education_ashu4, + "width": 100, + "height": 100 + }, + { + "url": education_ashu5, + "width": 100, + "height": 100 + }, + { + "url": education_ashuben2, + "width": 100, + "height": 100 + }, + { + "url": education_ashuben3, + "width": 100, + "height": 100 + }, + { + "url": education_ashuben4, + "width": 100, + "height": 100 + }, + { + "url": education_axueshimao1, + "width": 100, + "height": 100 + }, + { + "url": education_baichui, + "width": 100, + "height": 100 + }, + { + "url": education_bijiben, + "width": 100, + "height": 100 + }, + { + "url": education_bitong, + "width": 100, + "height": 100 + }, + { + "url": education_chizi, + "width": 100, + "height": 100 + }, + { + "url": education_chongdian, + "width": 100, + "height": 100 + }, + { + "url": education_citie, + "width": 100, + "height": 100 + }, + { + "url": education_daima, + "width": 100, + "height": 100 + }, + { + "url": education_deng, + "width": 100, + "height": 100 + }, + { + "url": education_dianliushiyan, + "width": 100, + "height": 100 + }, + { + "url": education_diqiu, + "width": 100, + "height": 100 + }, + { + "url": education_diqiuyi, + "width": 100, + "height": 100 + }, + { + "url": education_fanyi, + "width": 100, + "height": 100 + }, + { + "url": education_gongwenbao, + "width": 100, + "height": 100 + }, + { + "url": education_heiban, + "width": 100, + "height": 100 + }, + { + "url": education_huiyi, + "width": 100, + "height": 100 + }, + { + "url": education_jiangbei, + "width": 100, + "height": 100 + }, + { + "url": education_jiaoxuelou, + "width": 100, + "height": 100 + }, + { + "url": education_jinpai, + "width": 100, + "height": 100 + }, + { + "url": education_jisuan, + "width": 100, + "height": 100 + }, + { + "url": education_jisuanqi, + "width": 100, + "height": 100 + }, + { + "url": education_naozhong, + "width": 100, + "height": 100 + }, + { + "url": education_qianbi, + "width": 100, + "height": 100 + }, + { + "url": education_sepan, + "width": 100, + "height": 100 + }, + { + "url": education_shiyan, + "width": 100, + "height": 100 + }, + { + "url": education_shouji, + "width": 100, + "height": 100 + }, + { + "url": education_shuben, + "width": 100, + "height": 100 + }, + { + "url": education_shuxie, + "width": 100, + "height": 100 + }, + { + "url": education_sousuo, + "width": 100, + "height": 100 + }, + { + "url": education_suanpan, + "width": 100, + "height": 100 + }, + { + "url": education_tianping, + "width": 100, + "height": 100 + }, + { + "url": education_tingzhenqi, + "width": 100, + "height": 100 + }, + { + "url": education_tiyu, + "width": 100, + "height": 100 + }, + { + "url": education_wenjian, + "width": 100, + "height": 100 + }, + { + "url": education_xianweijing, + "width": 100, + "height": 100 + }, + { + "url": education_xiaoheiban, + "width": 100, + "height": 100 + }, + { + "url": education_xiezizhuo, + "width": 100, + "height": 100 + }, + { + "url": education_xueshimao, + "width": 100, + "height": 100 + }, + { + "url": education_yuanpan, + "width": 100, + "height": 100 + } + ] + }, + { + "name": "节日", + "list": [ + { + "url": festival_celianggongju, + "width": 100, + "height": 100 + }, + { + "url": festival_chunjie, + "width": 100, + "height": 100 + }, + { + "url": festival_duanwujie, + "width": 100, + "height": 100 + }, + { + "url": festival_ertongjie, + "width": 100, + "height": 100 + }, + { + "url": festival_fuqinjie, + "width": 100, + "height": 100 + }, + { + "url": festival_ganenjie, + "width": 100, + "height": 100 + }, + { + "url": festival_gongju, + "width": 100, + "height": 100 + }, + { + "url": festival_hushijie, + "width": 100, + "height": 100 + }, + { + "url": festival_jiaoshijie, + "width": 100, + "height": 100 + }, + { + "url": festival_laodongjie, + "width": 100, + "height": 100 + }, + { + "url": festival_muqinjie, + "width": 100, + "height": 100 + }, + { + "url": festival_nvshengjie, + "width": 100, + "height": 100 + }, + { + "url": festival_qingrenjie, + "width": 100, + "height": 100 + }, + { + "url": festival_qixi, + "width": 100, + "height": 100 + }, + { + "url": festival_shengdanjie, + "width": 100, + "height": 100 + }, + { + "url": festival_shuang, + "width": 100, + "height": 100 + }, + { + "url": festival_yuandan, + "width": 100, + "height": 100 + }, + { + "url": festival_yuanxiaojie, + "width": 100, + "height": 100 + }, + { + "url": festival_zhongqiujie, + "width": 100, + "height": 100 + }, + { + "url": festival_zhongyangjie, + "width": 100, + "height": 100 + } + ] + }, + { + "name": "食物", + "list": [ + { + "url": food_binggan, + "width": 100, + "height": 100 + }, + { + "url": food_binggun, + "width": 100, + "height": 100 + }, + { + "url": food_bingqilin, + "width": 100, + "height": 100 + }, + { + "url": food_boluo, + "width": 100, + "height": 100 + }, + { + "url": food_caomei, + "width": 100, + "height": 100 + }, + { + "url": food_celianggongju, + "width": 100, + "height": 100 + }, + { + "url": food_chengzi, + "width": 100, + "height": 100 + }, + { + "url": food_dangao, + "width": 100, + "height": 100 + }, + { + "url": food_fanqiejiang, + "width": 100, + "height": 100 + }, + { + "url": food_gongju, + "width": 100, + "height": 100 + }, + { + "url": food_hanbao, + "width": 100, + "height": 100 + }, + { + "url": food_jiandan, + "width": 100, + "height": 100 + }, + { + "url": food_kafeibei, + "width": 100, + "height": 100 + }, + { + "url": food_lajiao, + "width": 100, + "height": 100 + }, + { + "url": food_naixi, + "width": 100, + "height": 100 + }, + { + "url": food_niunai, + "width": 100, + "height": 100 + }, + { + "url": food_pingguo, + "width": 100, + "height": 100 + }, + { + "url": food_pisa, + "width": 100, + "height": 100 + }, + { + "url": food_putao, + "width": 100, + "height": 100 + }, + { + "url": food_quqi, + "width": 100, + "height": 100 + }, + { + "url": food_regou, + "width": 100, + "height": 100 + }, + { + "url": food_shutiao, + "width": 100, + "height": 100 + }, + { + "url": food_sudaqishui, + "width": 100, + "height": 100 + }, + { + "url": food_taozi, + "width": 100, + "height": 100 + }, + { + "url": food_tiantianquan, + "width": 100, + "height": 100 + }, + { + "url": food_xiangjiao, + "width": 100, + "height": 100 + }, + { + "url": food_xigua, + "width": 100, + "height": 100 + }, + { + "url": food_xilanhua, + "width": 100, + "height": 100 + }, + { + "url": food_yingtao, + "width": 100, + "height": 100 + }, + { + "url": food_yumi, + "width": 100, + "height": 100 + } + ] + }, + { + "name": "医疗", + "list": [ + { + "url": medicine_a1shilibiao, + "width": 100, + "height": 100 + }, + { + "url": medicine_a10yiliaoxiang, + "width": 100, + "height": 100 + }, + { + "url": medicine_a11yiyongweishengzhi, + "width": 100, + "height": 100 + }, + { + "url": medicine_a12huxi, + "width": 100, + "height": 100 + }, + { + "url": medicine_a13xiguan, + "width": 100, + "height": 100 + }, + { + "url": medicine_a14zhutingqi, + "width": 100, + "height": 100 + }, + { + "url": medicine_a15bingdu, + "width": 100, + "height": 100 + }, + { + "url": medicine_a16yiyuan, + "width": 100, + "height": 100 + }, + { + "url": medicine_a17zhusheqi, + "width": 100, + "height": 100 + }, + { + "url": medicine_a18xiguan, + "width": 100, + "height": 100 + }, + { + "url": medicine_a19guaizhang, + "width": 100, + "height": 100 + }, + { + "url": medicine_a2kouzhao, + "width": 100, + "height": 100 + }, + { + "url": medicine_a20shuye, + "width": 100, + "height": 100 + }, + { + "url": medicine_a3chuangkoutie, + "width": 100, + "height": 100 + }, + { + "url": medicine_a4lunyi, + "width": 100, + "height": 100 + }, + { + "url": medicine_a5mianqian, + "width": 100, + "height": 100 + }, + { + "url": medicine_a6jiancebi, + "width": 100, + "height": 100 + }, + { + "url": medicine_a7xinzang, + "width": 100, + "height": 100 + }, + { + "url": medicine_a8DNA, + "width": 100, + "height": 100 + }, + { + "url": medicine_a9tizhongcheng, + "width": 100, + "height": 100 + } + ] + }, + { + "name": "工具", + "list": [ + { + "url": tools_gaizhui, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_1, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_10, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_11, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_12, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_13, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_14, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_15, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_16, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_17, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_18, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_2, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_3, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_4, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_5, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_6, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_7, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_8, + "width": 100, + "height": 100 + }, + { + "url": tools_ziyuan_9, + "width": 100, + "height": 100 + } + ] + }, + { + "name": "旅行", + "list": [ + { + "url": travel_banshouli, + "width": 100, + "height": 100 + }, + { + "url": travel_chuhangshijian, + "width": 100, + "height": 100 + }, + { + "url": travel_ditu, + "width": 100, + "height": 100 + }, + { + "url": travel_fengjing, + "width": 100, + "height": 100 + }, + { + "url": travel_gonglve, + "width": 100, + "height": 100 + }, + { + "url": travel_hangli, + "width": 100, + "height": 100 + }, + { + "url": travel_huafei, + "width": 100, + "height": 100 + }, + { + "url": travel_jipiao, + "width": 100, + "height": 100 + }, + { + "url": travel_jiudian, + "width": 100, + "height": 100 + }, + { + "url": travel_lvban, + "width": 100, + "height": 100 + }, + { + "url": travel_meishi, + "width": 100, + "height": 100 + }, + { + "url": travel_menpiao, + "width": 100, + "height": 100 + }, + { + "url": travel_paishe, + "width": 100, + "height": 100 + }, + { + "url": travel_qianzheng, + "width": 100, + "height": 100 + }, + { + "url": travel_shangdian, + "width": 100, + "height": 100 + }, + { + "url": travel_tianqi, + "width": 100, + "height": 100 + }, + { + "url": travel_youlechangsuo, + "width": 100, + "height": 100 + }, + { + "url": travel_yuyanfanyi, + "width": 100, + "height": 100 + }, + { + "url": travel_zhuyishixiang, + "width": 100, + "height": 100 + }, + { + "url": travel_zuche, + "width": 100, + "height": 100 + } + ] + } +] diff --git a/plugin/src/config/index.js b/plugin/src/config/index.js new file mode 100644 index 0000000..ebbd945 --- /dev/null +++ b/plugin/src/config/index.js @@ -0,0 +1,211 @@ +import { + fontSizeList, + colorList, + borderWidthList, + borderRadiusList, + lineWidthList, + lineHeightList, + store, + langList, + shapeListMap, + lineStyleMap, + iconNameMap as iconNameMapZh, + fontFamilyList as fontFamilyListZh, + borderDasharrayList as borderDasharrayListZh, + lineStyleList as lineStyleListZh, + rootLineKeepSameInCurveList as rootLineKeepSameInCurveListZh, + backgroundRepeatList as backgroundRepeatListZh, + backgroundPositionList as backgroundPositionListZh, + shortcutKeyList as shortcutKeyListZh, + shapeList as shapeListZh, + sidebarTriggerList as sidebarTriggerListZh, + backgroundSizeList as backgroundSizeListZh, + downTypeList as downTypeListZh, + linearGradientDirList as linearGradientDirListZh, + alignList as alignListZh, + layoutGroupList as layoutGroupListZh +} from './zh' +import { + fontFamilyList as fontFamilyListEn, + borderDasharrayList as borderDasharrayListEn, + lineStyleList as lineStyleListEn, + rootLineKeepSameInCurveList as rootLineKeepSameInCurveListEn, + backgroundRepeatList as backgroundRepeatListEn, + backgroundPositionList as backgroundPositionListEn, + shortcutKeyList as shortcutKeyListEn, + shapeList as shapeListEn, + sidebarTriggerList as sidebarTriggerListEn, + backgroundSizeList as backgroundSizeListEn, + downTypeList as downTypeListEn, + linearGradientDirList as linearGradientDirListEn, + alignList as alignListEn, + layoutGroupList as layoutGroupListEn, + iconNameMap as iconNameMapEn +} from './en' +import { + fontFamilyList as fontFamilyListZhtw, + borderDasharrayList as borderDasharrayListZhtw, + lineStyleList as lineStyleListZhtw, + rootLineKeepSameInCurveList as rootLineKeepSameInCurveListZhtw, + backgroundRepeatList as backgroundRepeatListZhtw, + backgroundPositionList as backgroundPositionListZhtw, + shortcutKeyList as shortcutKeyListZhtw, + shapeList as shapeListZhtw, + sidebarTriggerList as sidebarTriggerListZhtw, + backgroundSizeList as backgroundSizeListZhtw, + downTypeList as downTypeListZhtw, + linearGradientDirList as linearGradientDirListZhtw, + alignList as alignListZhtw, + layoutGroupList as layoutGroupListZhtw, + iconNameMap as iconNameMapZhtw +} from './zhtw' +import { + fontFamilyList as fontFamilyListVi, + borderDasharrayList as borderDasharrayListVi, + lineStyleList as lineStyleListVi, + rootLineKeepSameInCurveList as rootLineKeepSameInCurveListVi, + backgroundRepeatList as backgroundRepeatListVi, + backgroundPositionList as backgroundPositionListVi, + shortcutKeyList as shortcutKeyListVi, + shapeList as shapeListVi, + sidebarTriggerList as sidebarTriggerListVi, + backgroundSizeList as backgroundSizeListVi, + downTypeList as downTypeListVi, + linearGradientDirList as linearGradientDirListVi, + alignList as alignListVi, + layoutGroupList as layoutGroupListVi, + iconNameMap as iconNameMapVi +} from './vi' + +const fontFamilyList = { + zh: fontFamilyListZh, + en: fontFamilyListEn, + zhtw: fontFamilyListZhtw, + vi: fontFamilyListVi +} + +const borderDasharrayList = { + zh: borderDasharrayListZh, + en: borderDasharrayListEn, + zhtw: borderDasharrayListZhtw, + vi: borderDasharrayListVi +} + +const lineStyleList = { + zh: lineStyleListZh, + en: lineStyleListEn, + zhtw: lineStyleListZhtw, + vi: lineStyleListVi +} + +const rootLineKeepSameInCurveList = { + zh: rootLineKeepSameInCurveListZh, + en: rootLineKeepSameInCurveListEn, + zhtw: rootLineKeepSameInCurveListZhtw, + vi: rootLineKeepSameInCurveListVi +} + +const backgroundRepeatList = { + zh: backgroundRepeatListZh, + en: backgroundRepeatListEn, + zhtw: backgroundRepeatListZhtw, + vi: backgroundRepeatListVi +} + +const backgroundPositionList = { + zh: backgroundPositionListZh, + en: backgroundPositionListEn, + zhtw: backgroundPositionListZhtw, + vi: backgroundPositionListVi +} + +const backgroundSizeList = { + zh: backgroundSizeListZh, + en: backgroundSizeListEn, + zhtw: backgroundSizeListZhtw, + vi: backgroundSizeListVi +} + +const shortcutKeyList = { + zh: shortcutKeyListZh, + en: shortcutKeyListEn, + zhtw: shortcutKeyListZhtw, + vi: shortcutKeyListVi +} + +const shapeList = { + zh: shapeListZh, + en: shapeListEn, + zhtw: shapeListZhtw, + vi: shapeListVi +} + +const sidebarTriggerList = { + zh: sidebarTriggerListZh, + en: sidebarTriggerListEn, + zhtw: sidebarTriggerListZhtw, + vi: sidebarTriggerListVi +} + +const downTypeList = { + zh: downTypeListZh, + en: downTypeListEn, + zhtw: downTypeListZhtw, + vi: downTypeListVi +} + +const linearGradientDirList = { + zh: linearGradientDirListZh, + en: linearGradientDirListEn, + zhtw: linearGradientDirListZhtw, + vi: linearGradientDirListVi +} + +const alignList = { + zh: alignListZh, + en: alignListEn, + zhtw: alignListZhtw, + vi: alignListVi +} + +const layoutGroupList = { + zh: layoutGroupListZh, + en: layoutGroupListEn, + zhtw: layoutGroupListZhtw, + vi: layoutGroupListVi +} + +const iconNameMap = { + zh: iconNameMapZh, + en: iconNameMapEn, + zhtw: iconNameMapZhtw, + vi: iconNameMapVi +} + +export { + fontSizeList, + borderWidthList, + borderRadiusList, + lineWidthList, + lineHeightList, + store, + colorList, + langList, + fontFamilyList, + borderDasharrayList, + lineStyleList, + lineStyleMap, + rootLineKeepSameInCurveList, + backgroundRepeatList, + backgroundPositionList, + backgroundSizeList, + shortcutKeyList, + shapeList, + shapeListMap, + sidebarTriggerList, + downTypeList, + linearGradientDirList, + alignList, + layoutGroupList, + iconNameMap +} diff --git a/plugin/src/config/vi.js b/plugin/src/config/vi.js new file mode 100644 index 0000000..96c9575 --- /dev/null +++ b/plugin/src/config/vi.js @@ -0,0 +1,624 @@ +// Danh sách phông chữ +export const fontFamilyList = [ + { + name: 'Song Thân', + value: '宋体, SimSun, Songti SC' + }, + { + name: 'Microsoft và Yahoo', + value: '微软雅黑, Microsoft YaHei' + }, + { + name: 'Chữ Khải', + value: '楷体, 楷体_GB2312, SimKai, STKaiti' + }, + { + name: 'Da đen', + value: '黑体, SimHei, Heiti SC' + }, + { + name: 'Lệ Thư', + value: '隶书, SimLi' + }, + { + name: 'Andale Mono', + value: 'andale mono' + }, + { + name: 'Arial', + value: 'arial, helvetica, sans-serif' + }, + { + name: 'arialBlack', + value: 'arial black, avant garde' + }, + { + name: 'Comic Sans Ms', + value: 'comic sans ms' + }, + { + name: 'Impact', + value: 'impact, chicago' + }, + { + name: 'Times New Roman', + value: 'times new roman' + }, + { + name: 'Sans-Serif', + value: 'sans-serif' + }, + { + name: 'serif', + value: 'serif' + } +] + +// Kiểu viền +export const borderDasharrayList = [ + { + name: 'Dòng rắn', + value: 'none' + }, + { + name: 'Đường chấm 1', + value: '5,5' + }, + { + name: 'Đường chấm 2', + value: '10,10' + }, + { + name: 'Đường chấm 3', + value: '20,10,5,5,5,10' + }, + { + name: 'Đường chấm 4', + value: '5,5,1,5' + }, + { + name: 'Đường chấm 5', + value: '15,10,5,10,15' + }, + { + name: 'Đường chấm 6', + value: '1,5' + }, + { + name: 'Đường chấm 7', + value: '6,4' + } +] + +// Kiểu kết nối +export const lineStyleList = [ + { + name: 'Đường thẳng', + value: 'straight' + }, + { + name: 'Đường cong', + value: 'curve' + }, + { + name: 'Trực tiếp', + value: 'direct' + } +] + +// Trong một kiểu đường cong, kiểu nút gốc có giống với các nút khác hay không +export const rootLineKeepSameInCurveList = [ + { + name: 'ngoặc đơn', + value: false + }, + { + name: 'ngoặc nhọn', + value: true + } +] + +// Cách lặp lại hình ảnh +export const backgroundRepeatList = [ + { + name: 'Không lặp lại', + value: 'no-repeat' + }, + { + name: 'Lặp lại', + value: 'repeat' + }, + { + name: 'Lặp lại hướng ngang', + value: 'repeat-x' + }, + { + name: 'Lặp lại theo chiều dọc', + value: 'repeat-y' + } +] + +// Định vị ảnh nền +export const backgroundPositionList = [ + { + name: 'Mặc định', + value: '0% 0%' + }, + { + name: 'Trái trên', + value: 'left top' + }, + { + name: 'Trái giữa', + value: 'left center' + }, + { + name: 'Trái dưới', + value: 'left bottom' + }, + { + name: 'Phải trên', + value: 'right top' + }, + { + name: 'Phải giữa', + value: 'right center' + }, + { + name: 'Dưới bên phải', + value: 'right bottom' + }, + { + name: 'Giữa trên', + value: 'center top' + }, + { + name: 'Ở giữa', + value: 'center center' + }, + { + name: 'Dưới', + value: 'center bottom' + } +] + +// Cỡ ảnh nền +export const backgroundSizeList = [ + { + name: 'Tự động', + value: 'auto' + }, + { + name: 'Ghi đè', + value: 'cover' + }, + { + name: 'Giữ', + value: 'contain' + } +] + +// Lưu trữ dữ liệu +export const store = { + sidebarZIndex: 1 //Thanh bên zIndex +} +const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0 +const ctrl = isMac ? '⌘' : 'Ctrl' +const enter = isMac ? 'Return' : 'Enter' +const macFn = isMac ? 'fn + ' : '' + +// Danh sách phím tắt +export const shortcutKeyList = [ + { + type: 'Hoạt động nút', + list: [ + { + icon: 'icontianjiazijiedian', + name: 'Chèn nút thấp hơn', + value: 'Tab | Insert' + }, + { + icon: 'iconjiedian', + name: 'Chèn nút ngang hàng', + value: enter + }, + { + icon: 'icondodeparent', + name: 'Chèn nút cha', + value: 'Shift + Tab' + }, + { + icon: 'iconshangyi', + name: 'Chuyển nút lên', + value: `${ctrl} + ↑` + }, + { + icon: 'iconxiayi', + name: 'Di chuyển nút xuống', + value: `${ctrl} + ↓` + }, + { + icon: 'icongaikuozonglan', + name: 'Chèn tóm tắt', + value: `${ctrl} + G` + }, + { + icon: 'iconzhankai', + name: 'Mở rộng/thu gọn các nút', + value: '/' + }, + { + icon: 'iconshanchu', + name: 'Xóa nút', + value: 'Delete | Backspace' + }, + { + icon: 'iconshanchu', + name: 'Chỉ xóa nút hiện tại', + value: 'Shift + Backspace' + }, + { + icon: 'iconfuzhi', + name: 'Sao chép nút', + value: `${ctrl} + C` + }, + { + icon: 'iconjianqie', + name: 'Cắt nút', + value: `${ctrl} + X` + }, + { + icon: 'iconniantie', + name: 'Dán nút', + value: `${ctrl} + V` + }, + { + icon: 'iconbianji', + name: 'Sửa nút', + value: macFn + 'F2' + }, + { + icon: 'iconhuanhang', + name: 'Dòng mới', + value: `Shift + ${enter}` + }, + { + icon: 'iconhoutui-shi', + name: 'Lùi lại', + value: `${ctrl} + Z` + }, + { + icon: 'iconqianjin1', + name: 'Tiến lên!', + value: `${ctrl} + Y` + }, + { + icon: 'iconquanxuan', + name: 'Chọn tất cả', + value: `${ctrl} + A` + }, + { + icon: 'iconquanxuan', + name: 'Nhiều lựa chọn', + value: `Phải / ${ctrl} + Trái` + }, + { + icon: 'iconzhengli', + name: 'Name', + value: `${ctrl} + R` + }, + { + icon: 'iconsousuo', + name: 'Tìm kiếm và thay thế', + value: `${ctrl} + F` + } + ] + }, + { + type: 'Hoạt động Canvas', + list: [ + { + icon: 'iconfangda', + name: 'Phóng to', + value: `${ctrl} + +` + }, + { + icon: 'iconsuoxiao', + name: 'Thu nhỏ', + value: `${ctrl} + -` + }, + { + icon: 'iconfangda', + name: 'Phóng to/Thu nhỏ', + value: `${ctrl} + Cuộn chuột` + }, + { + icon: 'icondingwei', + name: 'Trở lại Root Node', + value: `${ctrl} + ${enter}` + }, + { + icon: 'iconquanping1', + name: 'Thích nghi với Canvas', + value: `${ctrl} + i` + }, + { + icon: 'iconshubiaoyidong', + name: 'Di chuyển Canvas', + value: `Trái / Phải / Phím cách + Trái` + } + ] + }, + { + type: 'Hoạt động phác thảo', + list: [ + { + icon: 'iconhuanhang', + name: 'Dòng mới', + value: `Shift + ${enter}` + }, + { + icon: 'iconshanchu', + name: 'Xóa nút', + value: 'Delete' + }, + { + icon: 'icontianjiazijiedian', + name: 'Chèn nút thấp hơn', + value: 'Tab' + }, + { + icon: 'iconjiedian', + name: 'Chèn nút ngang hàng', + value: enter + }, + { + icon: 'icondodeparent', + name: 'Di chuyển lên một cấp', + value: 'Shift + Tab' + } + ] + } +] + +// Danh sách hình dạng +export const shapeList = [ + { + name: 'Hình chữ nhật', + value: 'rectangle' + }, + { + name: 'Kim cương', + value: 'diamond' + }, + { + name: 'Tứ giác song song', + value: 'parallelogram' + }, + { + name: 'Hình chữ nhật tròn', + value: 'roundedRectangle' + }, + { + name: 'Hình chữ nhật bát giác', + value: 'octagonalRectangle' + }, + { + name: 'Hình chữ nhật tam giác ngoài', + value: 'outerTriangularRectangle' + }, + { + name: 'Hình chữ nhật tam giác bên trong', + value: 'innerTriangularRectangle' + }, + { + name: 'Hình elip', + value: 'ellipse' + }, + { + name: 'Vòng tròn', + value: 'circle' + } +] + +// Danh sách thanh bên +export const sidebarTriggerList = [ + { + name: 'Kiểu nút', + value: 'nodeStyle', + icon: 'iconzhuti' + }, + { + name: 'Kiểu nền tảng', + value: 'baseStyle', + icon: 'iconyangshi' + }, + { + name: 'Chủ đề', + value: 'theme', + icon: 'iconjingzi' + }, + { + name: 'Cấu trúc', + value: 'structure', + icon: 'iconjiegou' + }, + { + name: 'Trang chủ', + value: 'outline', + icon: 'iconfuhao-dagangshu' + }, + { + name: 'Thiết lập', + value: 'setting', + icon: 'iconshezhi' + } +] + +// Danh sách các loại tải xuống +export const downTypeList = [ + { + name: '思绪Tài liệu', + type: 'smm', + icon: 'iconwenjian', + desc: + 'SimpleMindMap Định dạng riêng tư, có thể được sử dụng để nhập lại, có thể được chỉnh sửa trực tiếp bởi khách hàng' + }, + { + name: 'Hình ảnh', + type: 'png', + icon: 'iconPNG', + desc: 'Định dạng ảnh phổ biến, phù hợp để xem chia sẻ' + }, + { + name: 'SVG', + type: 'svg', + icon: 'iconSVG', + desc: 'Thu phóng đồ họa vector' + }, + { + name: 'PDF', + type: 'pdf', + icon: 'iconpdf', + desc: 'Thích hợp để xem trình duyệt và in' + }, + { + name: 'Markdown', + type: 'md', + icon: 'iconmarkdown', + desc: 'Định dạng văn bản md để dễ dàng mở phần mềm khác' + }, + { + name: 'XMind', + type: 'xmind', + icon: 'iconxmind', + desc: 'Định dạng phần mềm XMind' + }, + { + name: 'Txt', + type: 'txt', + icon: 'iconTXT', + desc: 'Tập tin văn bản thuần túy' + }, + { + name: 'JSON', + type: 'json', + icon: 'iconjson', + desc: + 'Các định dạng trao đổi dữ liệu phổ biến có thể được sử dụng để nhập lại' + } +] + +// Hướng gradient nền +export const linearGradientDirList = [ + { + name: 'Từ trái sang phải', + value: '1', + start: [0, 0], + end: [1, 0] + }, + { + name: 'Từ phải sang trái', + value: '2', + start: [1, 0], + end: [0, 0] + }, + { + name: 'Từ trên xuống dưới', + value: '3', + start: [0, 0], + end: [0, 1] + }, + { + name: 'Từ dưới lên trên', + value: '4', + start: [0, 1], + end: [0, 0] + }, + { + name: 'Từ trái lên phải xuống', + value: '5', + start: [0, 0], + end: [1, 1] + }, + { + name: 'Từ trái xuống phải', + value: '6', + start: [0, 1], + end: [1, 0] + }, + { + name: 'Từ trên xuống dưới', + value: '7', + start: [1, 0], + end: [0, 1] + }, + { + name: 'Từ phải xuống trái', + value: '8', + start: [1, 1], + end: [0, 0] + } +] + +// Căn lề văn bản +export const alignList = [ + { + name: 'Trái:', + value: 'left' + }, + { + name: 'Căn giữa', + value: 'center' + }, + { + name: 'Phải', + value: 'right' + } +] + +// Danh sách cấu trúc +export const layoutGroupList = [ + { + name: 'Sơ đồ cấu trúc logic', + list: ['logicalStructure', 'logicalStructureLeft'] + }, + { + name: 'Bản đồ tư duy', + list: ['mindMap'] + }, + { + name: 'Sơ đồ tổ chức', + list: ['organizationStructure'] + }, + { + name: 'Sơ đồ tổ chức thư mục', + list: ['catalogOrganization'] + }, + { + name: 'Dòng thời gian', + list: ['timeline', 'timeline2', 'verticalTimeline'] + }, + { + name: 'Bản đồ Fishbone', + list: ['fishbone'] + } +] + +export const iconNameMap = { + back: 'Quay lại', + forward: 'Tiến lên', + painter: 'Sao chép định dạng', + image: 'Chèn hình ảnh', + icon: 'Chèn biểu tượng', + link: 'Chèn siêu liên kết', + note: 'Chèn ghi chú', + tag: 'Chèn nhãn', + summary: 'Chèn tóm tắt', + associativeLine: 'Thêm đường liên kết', + formula: 'Chèn công thức toán', + // "attachment": "Chèn tệp đính kèm", + outerFrame: 'Thêm khung viền', + annotation: 'Thêm chú thích', + ai: 'AI tạo tự động' +} diff --git a/plugin/src/config/zh.js b/plugin/src/config/zh.js new file mode 100644 index 0000000..c82e09e --- /dev/null +++ b/plugin/src/config/zh.js @@ -0,0 +1,721 @@ +// 字体列表 +export const fontFamilyList = [ + { + name: '宋体', + value: '宋体, SimSun, Songti SC' + }, + { + name: '微软雅黑', + value: '微软雅黑, Microsoft YaHei' + }, + { + name: '楷体', + value: '楷体, 楷体_GB2312, SimKai, STKaiti' + }, + { + name: '黑体', + value: '黑体, SimHei, Heiti SC' + }, + { + name: '隶书', + value: '隶书, SimLi' + }, + { + name: 'Andale Mono', + value: 'andale mono' + }, + { + name: 'Arial', + value: 'arial, helvetica, sans-serif' + }, + { + name: 'arialBlack', + value: 'arial black, avant garde' + }, + { + name: 'Comic Sans Ms', + value: 'comic sans ms' + }, + { + name: 'Impact', + value: 'impact, chicago' + }, + { + name: 'Times New Roman', + value: 'times new roman' + }, + { + name: 'Sans-Serif', + value: 'sans-serif' + }, + { + name: 'serif', + value: 'serif' + } +] + +// 字号 +export const fontSizeList = [10, 12, 14, 16, 18, 24, 32, 48] + +// 颜色 +export const colorList = [ + '#4D4D4D', + '#999999', + '#FFFFFF', + '#F44E3B', + '#FE9200', + '#FCDC00', + '#DBDF00', + '#A4DD00', + '#68CCCA', + '#73D8FF', + '#AEA1FF', + '#FDA1FF', + '#333333', + '#808080', + '#cccccc', + '#D33115', + '#E27300', + '#FCC400', + '#B0BC00', + '#68BC00', + '#16A5A5', + '#009CE0', + '#7B64FF', + '#FA28FF', + '#000000', + '#666666', + '#B3B3B3', + '#9F0500', + '#C45100', + '#FB9E00', + '#808900', + '#194D33', + '#0C797D', + '#0062B1', + '#653294', + // '#AB149E', + 'transparent' +] + +// 边框宽度 +export const borderWidthList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + +// 边框样式 +export const borderDasharrayList = [ + { + name: '实线', + value: 'none' + }, + { + name: '虚线1', + value: '5,5' + }, + { + name: '虚线2', + value: '10,10' + }, + { + name: '虚线3', + value: '20,10,5,5,5,10' + }, + { + name: '虚线4', + value: '5,5,1,5' + }, + { + name: '虚线5', + value: '15,10,5,10,15' + }, + { + name: '虚线6', + value: '1,5' + }, + { + name: '虚线7', + value: '6,4' + } +] + +// 圆角 +export const borderRadiusList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + +// 线宽 +export const lineWidthList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + +// 行高 +export const lineHeightList = [1, 1.2, 1.5, 2, 2.5, 3] + +export const lineStyleMap = { + straight: ``, + curve: ``, + direct: `` +} + +// 连线风格 +export const lineStyleList = [ + { + name: '直线', + value: 'straight' + }, + { + name: '曲线', + value: 'curve' + }, + { + name: '直连', + value: 'direct' + } +] + +// 曲线风格中,根节点样式是否和其他节点保持一致 +export const rootLineKeepSameInCurveList = [ + { + name: '括号', + value: false + }, + { + name: '大括号', + value: true + } +] + +// 图片重复方式 +export const backgroundRepeatList = [ + { + name: '不重复', + value: 'no-repeat' + }, + { + name: '重复', + value: 'repeat' + }, + { + name: '水平方向重复', + value: 'repeat-x' + }, + { + name: '垂直方向重复', + value: 'repeat-y' + } +] + +// 背景图片定位 +export const backgroundPositionList = [ + { + name: '默认', + value: '0% 0%' + }, + { + name: '左上', + value: 'left top' + }, + { + name: '左中', + value: 'left center' + }, + { + name: '左下', + value: 'left bottom' + }, + { + name: '右上', + value: 'right top' + }, + { + name: '右中', + value: 'right center' + }, + { + name: '右下', + value: 'right bottom' + }, + { + name: '中上', + value: 'center top' + }, + { + name: '居中', + value: 'center center' + }, + { + name: '中下', + value: 'center bottom' + } +] + +// 背景图片大小 +export const backgroundSizeList = [ + { + name: '自动', + value: 'auto' + }, + { + name: '覆盖', + value: 'cover' + }, + { + name: '保持', + value: 'contain' + } +] + +// 数据存储 +export const store = { + sidebarZIndex: 1 //侧边栏zIndex +} +const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0 +const ctrl = isMac ? '⌘' : 'Ctrl' +const enter = isMac ? 'Return' : 'Enter' +const macFn = isMac ? 'fn + ' : '' + +// 快捷键列表 +export const shortcutKeyList = [ + { + type: '节点操作', + list: [ + { + icon: 'icontianjiazijiedian', + name: '插入下级节点', + value: 'Tab | Insert' + }, + { + icon: 'iconjiedian', + name: '插入同级节点', + value: enter + }, + { + icon: 'icondodeparent', + name: '插入父节点', + value: 'Shift + Tab' + }, + { + icon: 'iconshangyi', + name: '上移节点', + value: `${ctrl} + ↑` + }, + { + icon: 'iconxiayi', + name: '下移节点', + value: `${ctrl} + ↓` + }, + { + icon: 'icongaiyao', + name: '插入概要', + value: `${ctrl} + G` + }, + { + icon: 'iconzhankai', + name: '展开/收起节点', + value: '/' + }, + { + icon: 'iconshanchu', + name: '删除节点', + value: 'Delete | Backspace' + }, + { + icon: 'iconshanchu', + name: '仅删除当前节点', + value: 'Shift + Backspace' + }, + { + icon: 'iconfuzhi', + name: '复制节点', + value: `${ctrl} + C` + }, + { + icon: 'iconjianqie', + name: '剪切节点', + value: `${ctrl} + X` + }, + { + icon: 'iconniantie', + name: '粘贴节点', + value: `${ctrl} + V` + }, + { + icon: 'iconbianji', + name: '编辑节点', + value: macFn + 'F2' + }, + { + icon: 'iconhuanhang', + name: '文本换行', + value: `Shift + ${enter}` + }, + { + icon: 'iconhoutui-shi', + name: '回退', + value: `${ctrl} + Z` + }, + { + icon: 'iconqianjin1', + name: '前进', + value: `${ctrl} + Y` + }, + { + icon: 'iconquanxuan', + name: '全选', + value: `${ctrl} + A` + }, + { + icon: 'iconquanxuan', + name: '多选', + value: `右键 / ${ctrl} + 左键` + }, + { + icon: 'iconzhengli', + name: '一键整理布局', + value: `${ctrl} + R` + }, + { + icon: 'iconsousuo', + name: '搜索和替换', + value: `${ctrl} + F` + } + ] + }, + { + type: '画布操作', + list: [ + { + icon: 'iconfangda', + name: '放大', + value: `${ctrl} + +` + }, + { + icon: 'iconsuoxiao', + name: '缩小', + value: `${ctrl} + -` + }, + { + icon: 'iconfangda', + name: '放大/缩小', + value: `${ctrl} + 鼠标滚动` + }, + { + icon: 'icondingwei', + name: '回到根节点', + value: `${ctrl} + ${enter}` + }, + { + icon: 'iconquanping1', + name: '适应画布', + value: `${ctrl} + i` + }, + { + icon: 'iconshubiaoyidong', + name: '移动画布', + value: `左键 / 右键 / 空格键 + 左键` + } + ] + }, + { + type: '大纲操作', + list: [ + { + icon: 'iconhuanhang', + name: '文本换行', + value: `Shift + ${enter}` + }, + { + icon: 'iconshanchu', + name: '删除节点', + value: 'Delete' + }, + { + icon: 'icontianjiazijiedian', + name: '插入下级节点', + value: 'Tab' + }, + { + icon: 'iconjiedian', + name: '插入同级节点', + value: enter + }, + { + icon: 'icondodeparent', + name: '上移一个层级', + value: 'Shift + Tab' + } + ] + } +] + +export const shapeListMap = { + rectangle: 'M 4 12 L 4 3 L 56 3 L 56 21 L 4 21 L 4 12 Z', + diamond: 'M 4 12 L 30 3 L 56 12 L 30 21 L 4 12 Z', + parallelogram: 'M 10 3 L 56 3 L 50 21 L 4 21 L 10 3 Z', + roundedRectangle: + 'M 13 3 L 47 3 A 9 9 0, 0 1 47 21 L 13 21 A 9 9 0, 0 1 13 3 Z', + octagonalRectangle: + 'M 4 12 L 4 9 L 10 3 L 50 3 L 56 9 L 56 15 L 50 21 L 10 21 L 4 15 L 4 12 Z', + outerTriangularRectangle: + 'M 4 12 L 10 3 L 50 3 L 56 12 L 50 21 L 10 21 L 4 12 Z', + innerTriangularRectangle: + 'M 10 12 L 4 3 L 56 3 L 50 12 L 56 21 L 4 21 L 10 12 Z', + ellipse: 'M 4 12 A 26 9 0, 1, 0 30 3 A 26 9 0, 0, 0 4 12 Z', + circle: 'M 21 12 A 9 9 0, 1, 0 30 3 A 9 9 0, 0, 0 21 12 Z' +} + +// 形状列表 +export const shapeList = [ + { + name: '矩形', + value: 'rectangle' + }, + { + name: '菱形', + value: 'diamond' + }, + { + name: '平行四边形', + value: 'parallelogram' + }, + { + name: '圆角矩形', + value: 'roundedRectangle' + }, + { + name: '八角矩形', + value: 'octagonalRectangle' + }, + { + name: '外三角矩形', + value: 'outerTriangularRectangle' + }, + { + name: '内三角矩形', + value: 'innerTriangularRectangle' + }, + { + name: '椭圆', + value: 'ellipse' + }, + { + name: '圆', + value: 'circle' + } +] + +// 多语言列表 +export const langList = [ + { + value: 'zh', + name: '简体中文' + }, + { + value: 'zhtw', + alias: 'zh-TW', + name: '繁體中文' + }, + { + value: 'en', + name: 'English' + }, + { + value: 'vi', + name: 'Tiếng Việt' + } +] + +// 侧边栏列表 +export const sidebarTriggerList = [ + { + name: '节点样式', + value: 'nodeStyle', + icon: 'iconzhuti' + }, + { + name: '基础样式', + value: 'baseStyle', + icon: 'iconjichuyangshi' + }, + { + name: '主题', + value: 'theme', + icon: 'iconjingzi' + }, + { + name: '结构', + value: 'structure', + icon: 'iconjiegou' + }, + { + name: '大纲', + value: 'outline', + icon: 'iconfuhao-dagangshu' + }, + { + name: '设置', + value: 'setting', + icon: 'iconshezhi' + } +] + +// 下载类型列表 +export const downTypeList = [ + { + name: '思绪文件', + type: 'smm', + icon: 'iconwenjian', + desc: 'SimpleMindMap私有格式,可用于再次导入,客户端可直接编辑' + }, + { + name: '图片', + type: 'png', + icon: 'iconPNG', + desc: '常用图片格式,适合查看分享' + }, + { + name: 'SVG', + type: 'svg', + icon: 'iconSVG', + desc: '可缩放矢量图形' + }, + { + name: 'PDF', + type: 'pdf', + icon: 'iconpdf', + desc: '适合查看浏览和打印' + }, + { + name: 'Markdown', + type: 'md', + icon: 'iconmarkdown', + desc: 'md文本格式,便于其他软件打开' + }, + { + name: 'XMind', + type: 'xmind', + icon: 'iconxmind', + desc: 'XMind软件格式' + }, + { + name: 'Txt', + type: 'txt', + icon: 'iconTXT', + desc: '纯文本文件' + }, + { + name: 'JSON', + type: 'json', + icon: 'iconjson', + desc: '流行的数据交换格式,可用于再次导入' + } +] + +// 背景渐变方向 +export const linearGradientDirList = [ + { + name: '从左到右', + value: '1', + start: [0, 0], + end: [1, 0] + }, + { + name: '从右到左', + value: '2', + start: [1, 0], + end: [0, 0] + }, + { + name: '从上到下', + value: '3', + start: [0, 0], + end: [0, 1] + }, + { + name: '从下到上', + value: '4', + start: [0, 1], + end: [0, 0] + }, + { + name: '从左上到右下', + value: '5', + start: [0, 0], + end: [1, 1] + }, + { + name: '从左下到右上', + value: '6', + start: [0, 1], + end: [1, 0] + }, + { + name: '从右上到左下', + value: '7', + start: [1, 0], + end: [0, 1] + }, + { + name: '从右下到左上', + value: '8', + start: [1, 1], + end: [0, 0] + } +] + +// 文本对齐方式 +export const alignList = [ + { + name: '左对齐', + value: 'left' + }, + { + name: '居中对齐', + value: 'center' + }, + { + name: '右对齐', + value: 'right' + } +] + +// 结构列表 +export const layoutGroupList = [ + { + name: '逻辑结构图', + list: ['logicalStructure', 'logicalStructureLeft'] + }, + { + name: '思维导图', + list: ['mindMap'] + }, + { + name: '组织结构图', + list: ['organizationStructure'] + }, + { + name: '目录组织图', + list: ['catalogOrganization'] + }, + { + name: '时间轴', + list: ['timeline', 'timeline2', 'verticalTimeline'] + }, + { + name: '鱼骨图', + list: ['fishbone'] + } +] + +export const iconNameMap = { + back: '回退', + forward: '前进', + painter: '格式刷', + image: '插入图片', + icon: '插入图标', + link: '插入超链接', + note: '插入备注', + tag: '插入标签', + summary: '插入概要', + associativeLine: '添加关联线', + formula: '插入数学公式', + // 'attachment': '插入附件', + outerFrame: '添加外框', + annotation: '添加标记', + ai: 'AI一键生成' +} diff --git a/plugin/src/config/zhtw.js b/plugin/src/config/zhtw.js new file mode 100644 index 0000000..d59d521 --- /dev/null +++ b/plugin/src/config/zhtw.js @@ -0,0 +1,618 @@ +// 字型列表 +export const fontFamilyList = [ + { + name: '宋體', + value: '宋体, SimSun, Songti SC' + }, + { + name: '微軟雅黑', + value: '微软雅黑, Microsoft YaHei' + }, + { + name: '楷體', + value: '楷体, 楷体_GB2312, SimKai, STKaiti' + }, + { + name: '黑體', + value: '黑体, SimHei, Heiti SC' + }, + { + name: '隸書', + value: '隶书, SimLi' + }, + { + name: 'Andale Mono', + value: 'andale mono' + }, + { + name: 'Arial', + value: 'arial, helvetica, sans-serif' + }, + { + name: 'arialBlack', + value: 'arial black, avant garde' + }, + { + name: 'Comic Sans Ms', + value: 'comic sans ms' + }, + { + name: 'Impact', + value: 'impact, chicago' + }, + { + name: 'Times New Roman', + value: 'times new roman' + }, + { + name: 'Sans-Serif', + value: 'sans-serif' + }, + { + name: 'serif', + value: 'serif' + } +] + +// 框線樣式 +export const borderDasharrayList = [ + { + name: '實線', + value: 'none' + }, + { + name: '虛線 1', + value: '5,5' + }, + { + name: '虛線 2', + value: '10,10' + }, + { + name: '虛線 3', + value: '20,10,5,5,5,10' + }, + { + name: '虛線 4', + value: '5,5,1,5' + }, + { + name: '虛線 5', + value: '15,10,5,10,15' + }, + { + name: '虛線 6', + value: '1,5' + }, + { + name: '虛線 7', + value: '6,4' + } +] + +// 連線樣式 +export const lineStyleList = [ + { + name: '直線', + value: 'straight' + }, + { + name: '曲線', + value: 'curve' + }, + { + name: '直接連線', + value: 'direct' + } +] + +// 曲線樣式中,根節點樣式是否和其他節點保持一致 +export const rootLineKeepSameInCurveList = [ + { + name: '括號', + value: false + }, + { + name: '大括號', + value: true + } +] + +// 圖片重複方式 +export const backgroundRepeatList = [ + { + name: '不重複', + value: 'no-repeat' + }, + { + name: '重複', + value: 'repeat' + }, + { + name: '水平重複', + value: 'repeat-x' + }, + { + name: '垂直重複', + value: 'repeat-y' + } +] + +// 背景圖片位置 +export const backgroundPositionList = [ + { + name: '預設', + value: '0% 0%' + }, + { + name: '左上', + value: 'left top' + }, + { + name: '左中', + value: 'left center' + }, + { + name: '左下', + value: 'left bottom' + }, + { + name: '右上', + value: 'right top' + }, + { + name: '右中', + value: 'right center' + }, + { + name: '右下', + value: 'right bottom' + }, + { + name: '中上', + value: 'center top' + }, + { + name: '置中', + value: 'center center' + }, + { + name: '中下', + value: 'center bottom' + } +] + +const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0 +const ctrl = isMac ? '⌘' : 'Ctrl' +const enter = isMac ? 'Return' : 'Enter' +const macFn = isMac ? 'fn + ' : '' + +// 背景圖片大小 +export const backgroundSizeList = [ + { + name: '自動', + value: 'auto' + }, + { + name: '覆蓋', + value: 'cover' + }, + { + name: '包含', + value: 'contain' + } +] + +// 快捷鍵列表 +export const shortcutKeyList = [ + { + type: '節點操作', + list: [ + { + icon: 'icontianjiazijiedian', + name: '插入子節點', + value: 'Tab | Insert' + }, + { + icon: 'iconjiedian', + name: '插入同層節點', + value: enter + }, + { + icon: 'icondodeparent', + name: '插入父節點', + value: 'Shift + Tab' + }, + { + icon: 'iconshangyi', + name: '上移節點', + value: `${ctrl} + ↑` + }, + { + icon: 'iconxiayi', + name: '下移節點', + value: `${ctrl} + ↓` + }, + { + icon: 'icongaikuozonglan', + name: '插入摘要', + value: `${ctrl} + G` + }, + { + icon: 'iconzhankai', + name: '展開/收合節點', + value: '/' + }, + { + icon: 'iconshanchu', + name: '刪除節點', + value: 'Delete | Backspace' + }, + { + icon: 'iconshanchu', + name: '僅刪除目前節點', + value: 'Shift + Backspace' + }, + { + icon: 'iconfuzhi', + name: '複製節點', + value: `${ctrl} + C` + }, + { + icon: 'iconjianqie', + name: '剪下節點', + value: `${ctrl} + X` + }, + { + icon: 'iconniantie', + name: '貼上節點', + value: `${ctrl} + V` + }, + { + icon: 'iconbianji', + name: '編輯節點', + value: macFn + 'F2' + }, + { + icon: 'iconhuanhang', + name: '文字換行', + value: `Shift + ${enter}` + }, + { + icon: 'iconhoutui-shi', + name: '復原', + value: `${ctrl} + Z` + }, + { + icon: 'iconqianjin1', + name: '重做', + value: `${ctrl} + Y` + }, + { + icon: 'iconquanxuan', + name: '全選', + value: `${ctrl} + A` + }, + { + icon: 'iconquanxuan', + name: '多重選擇', + value: `右鍵 / ${ctrl} + 左鍵` + }, + { + icon: 'iconzhengli', + name: '一鍵整理版面配置', + value: `${ctrl} + R` + }, + { + icon: 'iconsousuo', + name: '搜尋與取代', + value: `${ctrl} + F` + } + ] + }, + { + type: '畫布操作', + list: [ + { + icon: 'iconfangda', + name: '放大', + value: `${ctrl} + +` + }, + { + icon: 'iconsuoxiao', + name: '縮小', + value: `${ctrl} + -` + }, + { + icon: 'iconfangda', + name: '放大/縮小', + value: `${ctrl} + 滑鼠滾輪` + }, + { + icon: 'icondingwei', + name: '回到根節點', + value: `${ctrl} + ${enter}` + }, + { + icon: 'iconquanping1', + name: '適應畫布', + value: `${ctrl} + i` + }, + { + icon: 'iconshubiaoyidong', + name: '移動畫布', + value: `左鍵 / 右鍵 / 空白鍵 + 左鍵` + } + ] + }, + { + type: '大綱操作', + list: [ + { + icon: 'iconhuanhang', + name: '文字換行', + value: `Shift + ${enter}` + }, + { + icon: 'iconshanchu', + name: '刪除節點', + value: 'Delete' + }, + { + icon: 'icontianjiazijiedian', + name: '插入子節點', + value: 'Tab' + }, + { + icon: 'iconjiedian', + name: '插入同層節點', + value: enter + }, + { + icon: 'icondodeparent', + name: '上移一層', + value: 'Shift + Tab' + } + ] + } +] + +// 形狀列表 +export const shapeList = [ + { + name: '矩形', + value: 'rectangle' + }, + { + name: '菱形', + value: 'diamond' + }, + { + name: '平行四邊形', + value: 'parallelogram' + }, + { + name: '圓角矩形', + value: 'roundedRectangle' + }, + { + name: '八角矩形', + value: 'octagonalRectangle' + }, + { + name: '外三角矩形', + value: 'outerTriangularRectangle' + }, + { + name: '內三角矩形', + value: 'innerTriangularRectangle' + }, + { + name: '橢圓形', + value: 'ellipse' + }, + { + name: '圓形', + value: 'circle' + } +] + +// 側邊欄列表 +export const sidebarTriggerList = [ + { + name: '節點樣式', + value: 'nodeStyle', + icon: 'iconzhuti' + }, + { + name: '基礎樣式', + value: 'baseStyle', + icon: 'iconyangshi' + }, + { + name: '主題', + value: 'theme', + icon: 'iconjingzi' + }, + { + name: '結構', + value: 'structure', + icon: 'iconjiegou' + }, + { + name: '大綱', + value: 'outline', + icon: 'iconfuhao-dagangshu' + }, + { + name: '設置', + value: 'setting', + icon: 'iconshezhi' + } +] + +// 下載類型列表 +export const downTypeList = [ + { + name: '思緒檔案', + type: 'smm', + icon: 'iconwenjian', + desc: 'SimpleMindMap私有格式,可用于再次導入,客戶端可直接編輯' + }, + { + name: '圖片', + type: 'png', + icon: 'iconPNG', + desc: '常用圖片格式,適合查看分享' + }, + { + name: 'SVG', + type: 'svg', + icon: 'iconSVG', + desc: '可縮放矢量圖形' + }, + { + name: 'PDF', + type: 'pdf', + icon: 'iconpdf', + desc: '適合查看浏覽和打印' + }, + { + name: 'Markdown', + type: 'md', + icon: 'iconmarkdown', + desc: 'md文本格式,便于其他軟件打開' + }, + { + name: 'XMind', + type: 'xmind', + icon: 'iconxmind', + desc: 'XMind軟件格式' + }, + { + name: 'Txt', + type: 'txt', + icon: 'iconTXT', + desc: '純文本文件' + }, + { + name: 'JSON', + type: 'json', + icon: 'iconjson', + desc: '流行的數據交換格式,可用于再次導入' + } +] + +// 背景渐变方向 +export const linearGradientDirList = [ + { + name: '从左到右', + value: '1', + start: [0, 0], + end: [1, 0] + }, + { + name: '从右到左', + value: '2', + start: [1, 0], + end: [0, 0] + }, + { + name: '从上到下', + value: '3', + start: [0, 0], + end: [0, 1] + }, + { + name: '从下到上', + value: '4', + start: [0, 1], + end: [0, 0] + }, + { + name: '从左上到右下', + value: '5', + start: [0, 0], + end: [1, 1] + }, + { + name: '从左下到右上', + value: '6', + start: [0, 1], + end: [1, 0] + }, + { + name: '从右上到左下', + value: '7', + start: [1, 0], + end: [0, 1] + }, + { + name: '从右下到左上', + value: '8', + start: [1, 1], + end: [0, 0] + } +] + +// 文本对齐方式 +export const alignList = [ + { + name: '左對齊', + value: 'left' + }, + { + name: '居中對齊', + value: 'center' + }, + { + name: '右對齊', + value: 'right' + } +] + +// 结构列表 +export const layoutGroupList = [ + { + name: '邏輯結構圖', + list: ['logicalStructure', 'logicalStructureLeft'] + }, + { + name: '思維導圖', + list: ['mindMap'] + }, + { + name: '組織結構圖', + list: ['organizationStructure'] + }, + { + name: '目錄組織圖', + list: ['catalogOrganization'] + }, + { + name: '時間軸', + list: ['timeline', 'timeline2', 'verticalTimeline'] + }, + { + name: '魚骨圖', + list: ['fishbone'] + } +] + +export const iconNameMap = { + back: '回退', + forward: '前進', + painter: '格式刷', + image: '插入圖片', + icon: '插入圖標', + link: '插入超連結', + note: '插入備註', + tag: '插入標籤', + summary: '插入概要', + associativeLine: '添加關聯線', + formula: '插入數學公式', + // "attachment": "插入附件", + outerFrame: '添加外框', + annotation: '添加標記', + ai: 'AI一鍵生成' +} diff --git a/plugin/src/i18n.js b/plugin/src/i18n.js new file mode 100644 index 0000000..ac08c51 --- /dev/null +++ b/plugin/src/i18n.js @@ -0,0 +1,12 @@ +import Vue from 'vue' +import VueI18n from 'vue-i18n' +import messages from './lang' + +Vue.use(VueI18n) + +const i18n = new VueI18n({ + messages, + fallbackLocale: 'en' +}) + +export default i18n diff --git a/plugin/src/lang/en_us.js b/plugin/src/lang/en_us.js new file mode 100644 index 0000000..511650c --- /dev/null +++ b/plugin/src/lang/en_us.js @@ -0,0 +1,636 @@ +export default { + baseStyle: { + title: 'BaseStyle', + background: 'Background', + color: 'Color', + image: 'Image', + imageRepeat: 'Image repeat', + imagePosition: 'Image position', + imageSize: 'Image size', + line: 'Line', + width: 'Width', + style: 'Style', + lineRadius: 'Radius', + lineOfOutline: 'Line of outline', + showArrow: 'Is show arrow', + nodePadding: 'Node padding', + nodeMargin: 'Node margin', + horizontal: 'Horizontal', + vertical: 'Vertical', + maximumWidth: 'Max width', + maximumHeight: 'Max height', + icon: 'Icon', + size: 'Size', + level2Node: 'Level2 node', + belowLevel2Node: 'Below level2 node', + nodeBorderType: 'Node border style', + nodeUseLineStyle: 'Use only has bottom border style', + otherConfig: 'Other config', + associativeLine: 'Associative line', + associativeLineWidth: 'Width', + associativeLineColor: 'Color', + associativeLineActiveWidth: 'Active width', + associativeLineActiveColor: 'Active color', + rootStyle: 'Root Node', + associativeLineText: 'Associative line text', + fontFamily: 'Font family', + fontSize: 'Font size', + rootLineStartPos: 'Root line start pos', + center: 'Center', + edge: 'Edge', + rainbowLines: 'Rainbow lines', + notUseRainbowLines: 'Not use rainbow lines', + outerFramePadding: 'Outer frame padding', + associativeLineStyle: 'Associative line style', + builtInBackgroundImage: 'Built in background image', + baseStyleConfig: 'BasicStyleConfigurationForMindMapping' + }, + setting: { + title: 'Setting', + openPerformance: 'Enable performance mode', + enableFreeDrag: 'Enable node free drag(Beta)', + isEnableNodeRichText: 'Enable node rich text editing', + mousewheelAction: 'Mouse wheel behavior', + zoomView: 'Zoom view', + moveViewUpDown: 'Move view up and down', + mousewheelZoomActionReverse: 'Mouse Wheel Zoom', + mousewheelZoomActionReverse1: 'Zoom out forward and zoom in back', + mousewheelZoomActionReverse2: 'Zoom in forward and zoom out back', + createNewNodeBehavior: 'Behavior of creating new node', + default: 'Active new node and editing', + notActive: 'Not active new node', + activeOnly: 'Only active new node but not editing', + openRealtimeRenderOnNodeTextEdit: + 'Enable real-time rendering effect for text editing', + isShowScrollbar: 'Is show scrollbar', + isUseHandDrawnLikeStyle: 'Is use hand drawn like style', + isUseMomentum: 'Is open drag momentum', + isUseSameNodeAlign: 'Is use same node align', + openBlankMode: 'Is open blank mode of the demonstrate', + watermark: 'Watermark', + showWatermark: 'Is show watermark', + onlyExport: 'Only export', + watermarkDefaultText: 'Watermark text', + watermarkText: 'Watermark text', + watermarkTextColor: 'Text color', + watermarkLineSpacing: 'Line spacing', + watermarkTextSpacing: 'Text spacing', + watermarkAngle: 'Angle', + watermarkTextOpacity: 'Text opacity', + watermarkTextFontSize: 'Font size', + belowNode: 'Display below nodes', + alwaysShowExpandBtn: 'Always show expand btn', + enableAutoEnterTextEditWhenKeydown: 'Auto enter text edit when keydown', + confirm: 'Confirm', + cancel: 'Cancel', + changeRichTextTip: + 'This operation will clear all historical modification records and modify the mind map data. Do you want to continue?', + changeRichTextTip2: 'Do you want to switch to rich text mode?', + changeRichTextTip3: 'Do you want to switch to non rich text mode?', + enableDragImport: + 'Is it allowed to directly drag and drop files to the page for import', + imgTextMargin: 'Node image and text margin', + textContentMargin: 'Node contents margin', + enableInheritAncestorLineStyle: + 'Node connection style inherits the style of ancestor nodes', + enableAi: 'Is enable AI function', + rootEnableUnExpand: 'Does the root node allow the collapse of subordinates', + settingConfig: 'MindmapSetting', + title1: 'Node', + title2: 'Edit', + title3: 'Display', + title4: 'Other' + }, + color: { + moreColor: 'More color' + }, + contextmenu: { + insertSiblingNode: 'Insert sibling node', + insertChildNode: 'Insert child node', + insertParentNode: 'Insert parent node', + insertSummary: 'Insert summary', + moveUpNode: 'Move up node', + moveDownNode: 'Move down node', + deleteNode: 'Delete node', + deleteCurrentNode: 'Only del cur node', + copyNode: 'Copy node', + cutNode: 'Cut node', + pasteNode: 'Paste node', + backCenter: 'Back root node', + expandAll: 'Expand all', + unExpandAll: 'Un expand all', + expandTo: 'Expand to', + arrangeLayout: 'Arrange layout', + level1: 'Level1', + level2: 'Level2', + level3: 'Level3', + level4: 'Level4', + level5: 'Level5', + level6: 'Level6', + zenMode: 'Zen mode', + fitCanvas: 'Fit canvas', + removeImage: 'Remove image', + removeHyperlink: 'Remove hyperlink', + removeNote: 'Remove note', + removeCustomStyles: 'Remove custom styles', + removeAllNodeCustomStyles: 'Remove all node custom styles', + exportNodeToPng: 'Export node to png', + copyToClipboard: 'Copy to clipboard', + copyToSmm: 'SMM', + copyToJson: 'JSON', + copyToMarkdown: 'Markdown', + copyToTxt: 'Txt', + copyToPng: 'Png', + copySuccess: 'Copy success', + copyFail: 'Copy fail', + number: 'Number child nodes', + expandNodeChild: 'Expand all sub nodes', + unExpandNodeChild: 'Un expand all sub nodes', + addToDo: 'Add toDo', + removeToDo: 'Remove toDo', + aiCreate: 'AI Continuation', + modifyNodeLink: 'Modify node link', + linkToNode: 'Link to node', + removeNodeLink: 'Remove node link', + nodeAlgin: 'One click same level node alignment', + removeCustomWidth: 'Remove custom width', + copyAsInternalUrl: 'Copy as internal url', + removeAllCustomWidth: 'One click removal of custom width for all nodes' + }, + count: { + words: 'Words', + nodes: 'Nodes' + }, + dialog: { + cancel: 'Cancel', + confirm: 'Confirm' + }, + export: { + title: 'Export', + filename: 'Filename', + include: 'Is include config like theme and structure', + dedicatedFile: 'Dedicated file', + jsonFile: 'json file', + imageFile: 'Image file', + svgFile: 'svg file', + pdfFile: 'pdf file', + markdownFile: 'markdown file', + isTransparent: 'Background is transparent', + transformingDomToImages: 'Converting nodes: ', + notifyTitle: 'Info', + notifyMessage: + 'If the download is not triggered, check whether it is blocked by the browser', + paddingX: 'Padding x', + paddingY: 'Padding y', + useMultiPageExport: 'Export multi page', + defaultFileName: 'Mind map', + addFooterTextPlaceholder: 'For example: From simple-mind-map', + addFooterText: 'Add text at the footer', + desc: 'Desc', + options: 'Options', + isFitBg: + 'Whether to display the complete background image (effective when a background image is used)', + format: 'Format', + confirm: 'Export' + }, + fullscreen: { + fullscreenShow: 'Full screen show', + fullscreenEdit: 'Full screen edit' + }, + demonstrate: { + demonstrate: 'Enter demonstration mode' + }, + import: { + title: 'Import', + selectFile: 'Select file', + support: 'Support', + file: 'file', + pleaseSelect: 'Please select', + maxFileNum: 'At most one file can be selected', + notSelectTip: 'Please select the file to import', + fileContentError: 'The file content is incorrect', + importSuccess: 'Import success', + fileParsingFailed: 'File parsing failed', + xmindCanvasSelectDialogTitle: 'Select the canvas to import', + mdImportDialogTitle: 'Paste Markdown content to import', + mdPlaceholder: 'Please enter the content in Markdown format', + mdEmptyTip: 'The content cannot be empty' + }, + navigatorToolbar: { + openMiniMap: 'Open mini map', + closeMiniMap: 'Close mini map', + readonly: 'Change to Readonly', + edit: 'Change to edit', + backToRoot: 'Back to root node', + changeSourceCodeEdit: 'Switch to source code editing mode', + shortcutKeys: 'Shortcut keys', + ai: 'AI dialogue', + downloadClient: 'Download client', + site: 'Official website', + current: 'Current:', + downloadDesc: 'You can download it from the following address:', + searchReplace: 'Search for replacement', + exitDarkMode: 'Exit dark mode', + darkMode: 'Switch to dark mode', + darkModeFailTip: 'Switching failed, currently following Obsidian mode', + export: 'Export' + }, + nodeHyperlink: { + title: 'Link', + link: 'Href', + name: 'Name', + tabName1: 'Ordinary website', + tabName2: 'Obsidian file', + tabName3: 'Local files', + selectLocalFile: 'Select local file', + none: 'Not have', + delete: 'Delete', + add: 'Add', + tip1: 'Please enter the link address', + tip2: 'Insertion failed, file does not exist', + tip3: 'Please select a local file', + tip4: 'File upload to Vault failed' + }, + nodeIcon: { + title: 'Icon' + }, + nodeImage: { + title: 'Image', + imgTitle: 'Title', + tip: + "Tip: If you want to paste an image, you don't need to open this pop-up window. Simply activate the node and press Ctrl+v to paste.", + method1: 'Method 1', + method2: 'Method 2', + tip2: 'Please enter the image address', + optional: 'Optional', + selectLocal: 'Select locally', + selectVault: 'Select from Vault', + selectUrl: 'Network images', + imgTitle: 'Image title (optional)' + }, + nodeNote: { + title: 'Note' + }, + nodeTag: { + title: 'Tag', + addTip: 'Please press Enter to add, up to five labels can be added' + }, + outline: { + title: 'Outline', + nodeDefaultText: 'Branch node', + print: 'Print', + fullscreen: 'Fullscreen', + tip1: 'Insert sibling node:', + tip2: 'Insert child node:', + tip3: 'Node up hierarchy:', + tip4: 'Delete node:', + tip5: 'Press and hold the node to drag and drop' + }, + scale: { + zoomIn: 'Zoom in', + zoomOut: 'Zoom out' + }, + shortcutKey: { + title: 'Shortcut key' + }, + strusture: { + title: 'Strusture' + }, + style: { + title: 'Node style', + normal: 'Normal', + active: 'Active', + text: 'Text', + fontFamily: 'Font family', + fontSize: 'Font size', + color: 'color', + addFontWeight: 'add font weight', + italic: 'Italic', + textDecoration: 'Text decoration', + underline: 'Underline', + none: 'None', + lineThrough: 'Line through', + overline: 'Overline', + border: 'Border', + style: 'Style', + width: 'Width', + borderRadius: 'Border radius', + background: 'Background', + shape: 'Shape', + line: 'Line', + nodePadding: 'Node padding', + horizontal: 'Horizontal', + vertical: 'Vertical', + gradientStyle: 'Gradient', + startColor: 'Start', + endColor: 'End', + arrowDir: 'Arrow dir', + arrowDirStart: 'Start', + arrowDirEnd: 'End', + direction: 'Direction', + selectNodeTip: 'Please select a node', + openLineFlow: 'Open line flow', + lineFlowDuration: 'Line flow duration', + forward: 'Forward', + reverse: 'Reverse', + img: 'Image', + placement: 'Placement', + top: 'Top', + bottom: 'Bottom', + left: 'Left', + right: 'Right', + tag: 'Tag' + }, + theme: { + title: 'Theme', + classics: 'Classics', + dark: 'Darkness', + simple: 'Simple', + coverTip: + 'You have currently customized the basic style, do you want to overwrite it?', + tip: 'Tip', + cover: 'Cover', + reserve: 'Reserve' + }, + toolbar: { + undo: 'Undo', + redo: 'Redo', + insertSiblingNode: 'Sibling node', + insertChildNode: 'Child node', + deleteNode: 'Delete node', + image: 'Image', + icon: 'Icon', + link: 'Link', + note: 'Note', + tag: 'Tag', + summary: 'Summary', + displayOutline: 'Display outline', + baseStyle: 'Base style', + theme: 'Theme', + strusture: 'Strusture', + newFile: 'New file', + openFile: 'Open file', + saveAs: 'Save as', + import: 'Import', + export: 'Export', + shortcutKey: 'Shortcut key', + associativeLine: 'Associative line', + painter: 'Painter', + formula: 'Formula', + attachment: 'Attachment', + outerFrame: 'Outer frame', + more: 'More', + selectFileTip: 'Please select a file', + notSupportTip: + 'Your browser does not support this feature, or the current page is not using the HTTPS protocol', + tip: 'Tip', + editingLocalFileTipFront: 'Currently editing your local【', + editingLocalFileTipEnd: '】file', + fileContentError: 'File content error', + fileOpenFailed: 'File open failed', + defaultFileName: 'Mind map', + creatingTip: 'Creating file', + directory: 'Directory', + newFileTip: + 'Please export the currently edited file before creating a new one, Beware of content loss', + openFileTip: + 'Please export the currently edited file before opening it, Beware of content loss', + ai: 'AI' + }, + edit: { + newFeatureNoticeTitle: 'New feature reminder', + newFeatureNoticeMessage: + 'This update supports node rich text editing, But there are some defects, The most important impact is that the time to export the image is proportional to the number of nodes, Therefore, if you are more dependent on export requirements, you can use【Base style】-【Other config】-【Enable node rich text editing】Set to turn off rich text editing mode.', + root: 'Root node', + splitByWrap: 'Is automatically split nodes based on line breaks?', + tip: 'Tip', + yes: 'Yes', + no: 'No', + exportError: 'Export failed', + dragTip: 'Release here to import the file', + deleteNodeImgTip: 'Are you sure to delete the node image?', + autoOpenNodeRichTextTip: + 'Detected imported rich text content, automatically enabled rich text mode', + localStorageExceededTip: + 'The volume of the mind map you created has exceeded the maximum storage limit allowed by the browser. Please export it immediately, otherwise the data will be lost! It is recommended to download the client for use, as there is no size limit for the client.', + withBg: 'With background image', + tryTipTitle: 'Function trial prompt', + tryTipDesc: + 'This feature is a trial feature in the web version. Please download the client to use it:', + downBaidu: 'Go to Baidu Netdisk to download', + downGithub: 'Download from Github', + painterTip: 'Click on the blank space on the canvas to cancel or end', + createAssociativeLineTip: + 'Click on the blank space on the canvas to cancel', + savingTip: 'Saving in progress, please try again later', + savingTip2: + 'The mind map is empty or in the process of rendering. Please try again later', + savingTip3: 'Successfully saved', + savingTip4: 'Save failed', + defaultInsertSecondLevelNodeText: 'Secondary node', + defaultInsertBelowSecondLevelNodeText: 'Branch Topic', + defaultGeneralizationText: 'Summary', + defaultAssociativeLineText: 'Association', + defaultOuterFrameText: 'Outer frame', + pasteImage: 'Paste-image' + }, + mouseAction: { + tip1: + 'Current: Left click to drag the canvas, right click to box select nodes. Click to switch', + tip2: + 'Current: Left click to box select nodes, right click to drag the canvas. Click to switch' + }, + search: { + searchPlaceholder: 'Enter the search content and press Enter', + replacePlaceholder: 'Please enter replacement content', + replace: 'Replace', + replaceAll: 'Replace all', + cancel: 'Cancel', + noResult: 'No result' + }, + nodeIconSidebar: { + title: 'Icon/Sticker', + icon: 'Icon', + sticker: 'Sticker' + }, + formulaSidebar: { + title: 'Formula', + placeholder: 'Please enter LaTeX syntax', + confirm: 'Confirm', + common: 'Common formulas', + tip: 'Inserting formulas is not supported in non rich text mode' + }, + richTextToolbar: { + bold: 'Bold', + italic: 'Italic', + underline: 'Underline', + strike: 'Strike', + fontFamily: 'Font family', + fontSize: 'Font size', + color: 'Color', + backgroundColor: 'Background color', + removeFormat: 'Clear Style', + textAlign: 'Text align' + }, + other: { + loading: 'Loading, please wait...' + }, + sourceCodeEdit: { + sourceCodeTip: + 'It is not recommended to modify the style in rich text mode because it requires synchronous modification of data and HTML structure.', + format: 'Format', + copy: 'Copy', + confirm: 'Complete', + close: 'Close', + formatErrorTip: 'The JSON format is incorrect. Please check and try again', + copyTip: 'Copied to clipboard', + formatTip: 'Format complete' + }, + attachment: { + deleteAttachment: 'Delete attachment', + tip: 'The attachment function is only available on the client side' + }, + annotation: { + mark: 'Mark', + show: 'Show mark', + type: 'Type', + color: 'Color', + lineWidth: 'Line width', + padding: 'Padding', + animate: 'Animate' + }, + nodeOuterFrame: { + outerFrameSetting: 'Outer frame setting', + deleteOuterFrame: 'Delete outer frame', + boxStyle: 'Box style', + boxColor: 'Box color', + fillColor: 'Fill color', + nodeOuterFrameStyle: 'Outer frame style', + outerFrameText: 'Outer frame text', + deleteOuterFrameText: 'Delete outer frame text', + fontFamily: 'Font family', + color: 'Color', + fontSize: 'font size', + radius: 'Radius', + fontBold: 'Font bold', + italic: 'Italic', + lineHeight: 'Line height', + textFillRadius: 'Text fill radius', + textFill: 'Text fill color', + textAlign: 'Text align', + left: 'Left', + center: 'Center', + right: 'Right', + paddingX: 'Padding x', + paddingY: 'Padding y', + constainsChildren: 'Does the outer frame contain child nodes' + }, + nodeTagStyle: { + placeholder: 'Please enter the tag content', + delete: 'Delete this tag' + }, + ai: { + chatTitle: 'AI dialogue', + clearRecords: 'Clear records', + connectFailedTitle: 'Client connection failure prompt', + connectFailedTip: 'Client connection failed, please check:', + connectFailedCheckTip1: + '1. Have you installed the mind mapping client? If not, please click here to install:', + connectFailedCheckTip2: + '2. If the client is installed, please confirm if the client is opened.', + connectFailedCheckTip3: + 'If it has already been installed and started, you can try closing and restarting it.', + connectFailedCheckTip4: + 'After completing the above steps, you can click on:', + baiduNetdisk: 'Baidu Netdisk', + createMindMapTitle: 'One click generation of mind maps', + createTip: + 'Please enter a theme, and AI will generate a mind map based on your theme, such as: Hangzhou weekend travel plan.', + importantTip: + 'Important note: One click generation will overwrite existing data. It is recommended to export the current data first.', + wantModifyAiConfigTip: + 'Do you want to modify the AI configuration? Please click on:', + modifyAIConfiguration: 'Modify AI configuration', + chatInputPlaceholder: 'Enter to send, Shift+Enter to wrap.', + send: 'Send', + stopGenerating: 'Stop generating', + generationFailed: 'Generation failed', + aiGenerationSuccess: 'AI generation completed', + stoppedGenerating: 'Stopped generating', + AIConfiguration: 'AI configuration', + VolcanoArkLargeModelConfiguration: 'Volcano Ark Large Model Configuration:', + configTip: + 'At present, only the Volcano Ark model is supported, and you need to obtain the key yourself. For detailed operation steps, please refer to:', + course: 'Course', + inferenceAccessPoint: 'Inference access point', + mindMappingClientConfiguration: 'Mind mapping client configuration:', + port: 'Port', + cancel: 'Cancel', + confirm: 'Confirm', + close: 'Close', + configSaveSuccessTip: 'Configuration saved successfully', + apiValidateTip: 'Please enter the interface', + keyValidateTip: 'Please enter the API Key', + modelValidateTip: 'Please enter the inference access point', + portValidateTip: 'Please enter the port', + methodValidateTip: 'Please select the request method', + noInputTip: 'Please enter the content', + connectSuccessful: 'Connection successful', + connectFailed: 'connection failed', + connectionDetection: 'Connection detection', + configurationMissing: 'Configuration missing', + aiCreateMsgPrefix: 'Help me write one【', + aiCreateMsgPostfix: + '】. It needs to be returned in Markdown format and can only use two syntax: Markdown title and unordered list. It can support multiple layers of nesting. Just return the content.', + aiCreatePartMsgPrefix: 'I have a theme for【', + aiCreatePartMsgCenter: + '】Can you help me continue writing one of the contents of the mind map【', + aiCreatePartMsgPostfix: '】The subordinate content of the node', + aiCreatePartMsgHelp: + '. Needs to be returned in Markdown format and can only use two syntax: Markdown title and unordered list. It can support multi-level nesting. Just return the content.', + aiCreatePart: 'AI Continuation' + }, + note: { + title: 'Note' + }, + nodeLink: { + linkToNode: 'Link to node', + addReturn: 'Weather to add a backlink', + tip1: 'Please select the node to link to', + tip2: 'Cannot link to oneself', + tip3: 'Link successful', + tip4: 'Delete successful', + tip5: 'The link node does not exist. Weather to delete the link?' + }, + ciod: { + outputConfig: 'Export Configuration', + importConfig: 'Import configuration', + tip1: 'Please select a JSON file', + tip2: 'The file content format is incorrect', + tip3: 'Import was successful', + tip4: 'Import failed' + }, + imageUpload: { + tip: 'Click here to select an image, or drag an image here', + failTip: 'Image save failed' + }, + fileSelectList: { + searchPlaceholder: 'Search for file name' + }, + guide: { + btn: 'Close guide', + tip1: + 'To update ![[]] embedded in other documents with preview images, you need to manually click save', + tip2: + 'After activating the node, you can modify the node content here (images, icons...)', + tip3: 'Here you can modify the node style, switch themes/structures, etc.', + tip4: 'Here you can view shortcut information', + tip5: 'Here are some auxiliary functions (mini map, demo mode...)' + }, + previewMode: { + emptyTitle: 'No renderable data parsed', + emptyDesc: + 'Currently, only partial markdown syntax can be parsed, such as titles and lists', + close: 'Close' + } +} diff --git a/plugin/src/lang/index.js b/plugin/src/lang/index.js new file mode 100644 index 0000000..e7eaea8 --- /dev/null +++ b/plugin/src/lang/index.js @@ -0,0 +1,11 @@ +import en from './en_us' +import zh from './zh_cn' +import zhtw from './zh_tw' +import vi from './vi_vn' + +export default { + zh, + zhtw, + en, + vi +} diff --git a/plugin/src/lang/vi_vn.js b/plugin/src/lang/vi_vn.js new file mode 100644 index 0000000..8eaa674 --- /dev/null +++ b/plugin/src/lang/vi_vn.js @@ -0,0 +1,637 @@ +export default { + baseStyle: { + title: 'Kiểu cơ bản', + background: 'Nền', + color: 'Màu sắc', + image: 'Hình ảnh', + imageRepeat: 'Lặp lại hình ảnh', + imagePosition: 'Vị trí hình ảnh', + imageSize: 'Kích thước hình ảnh', + line: 'Đường kẻ', + width: 'Độ rộng', + style: 'Kiểu dáng', + lineRadius: 'Độ cong', + lineOfOutline: 'Đường viền ngoài', + showArrow: 'Hiển thị mũi tên', + nodePadding: 'Đệm nút', + nodeMargin: 'Lề nút', + horizontal: 'Ngang', + vertical: 'Dọc', + maximumWidth: 'Độ rộng tối đa', + maximumHeight: 'Độ cao tối đa', + icon: 'Biểu tượng', + size: 'Kích thước', + level2Node: 'Nút cấp 2', + belowLevel2Node: 'Nút dưới cấp 2', + nodeBorderType: 'Kiểu viền nút', + nodeUseLineStyle: 'Chỉ sử dụng kiểu viền dưới', + otherConfig: 'Cấu hình khác', + associativeLine: 'Đường liên kết', + associativeLineWidth: 'Độ rộng', + associativeLineColor: 'Màu sắc', + associativeLineActiveWidth: 'Độ rộng khi kích hoạt', + associativeLineActiveColor: 'Màu sắc khi kích hoạt', + rootStyle: 'Nút gốc', + associativeLineText: 'Văn bản đường liên kết', + fontFamily: 'Phông chữ', + fontSize: 'Cỡ chữ', + rootLineStartPos: 'Vị trí bắt đầu đường nút gốc', + center: 'Trung tâm', + edge: 'Cạnh', + rainbowLines: 'Đường cầu vồng', + notUseRainbowLines: 'Không sử dụng đường cầu vồng', + outerFramePadding: 'Đệm khung ngoài', + associativeLineStyle: 'Kiểu đường liên kết', + builtInBackgroundImage: 'Hình nền tích hợp', + baseStyleConfig: 'Sơ đồ Tư duy Tư duy Cấu hình Kiểu dáng Cơ bản' + }, + setting: { + title: 'Cài đặt', + openPerformance: 'Bật chế độ hiệu suất', + enableFreeDrag: 'Cho phép kéo thả tự do nút (Beta)', + isEnableNodeRichText: 'Cho phép chỉnh sửa văn bản phong phú của nút', + mousewheelAction: 'Hành vi của con lăn chuột', + zoomView: 'Thu phóng', + moveViewUpDown: 'Di chuyển lên xuống', + mousewheelZoomActionReverse: 'Thu phóng con lăn chuột', + mousewheelZoomActionReverse1: 'Thu nhỏ tiến tới và phóng to lùi lại', + mousewheelZoomActionReverse2: 'Phóng to tiến tới và thu nhỏ lùi lại', + createNewNodeBehavior: 'Hành vi tạo nút mới', + default: 'Kích hoạt nút mới và chỉnh sửa', + notActive: 'Không kích hoạt nút mới', + activeOnly: 'Chỉ kích hoạt nút mới mà không chỉnh sửa', + openRealtimeRenderOnNodeTextEdit: + 'Bật hiệu ứng kết xuất thời gian thực cho chỉnh sửa văn bản', + isShowScrollbar: 'Hiển thị thanh cuộn', + isUseHandDrawnLikeStyle: 'Sử dụng kiểu vẽ tay', + isUseMomentum: 'Mở động lượng kéo', + isUseSameNodeAlign: 'Sử dụng căn chỉnh nút cùng cấp', + openBlankMode: 'Mở chế độ trống cho trình diễn', + watermark: 'Hình mờ', + showWatermark: 'Hiển thị hình mờ', + onlyExport: 'Chỉ xuất', + watermarkDefaultText: 'Văn bản hình mờ', + watermarkText: 'Văn bản hình mờ', + watermarkTextColor: 'Màu văn bản', + watermarkLineSpacing: 'Khoảng cách dòng', + watermarkTextSpacing: 'Khoảng cách văn bản', + watermarkAngle: 'Góc', + watermarkTextOpacity: 'Độ mờ văn bản', + watermarkTextFontSize: 'Cỡ chữ', + belowNode: 'Hiển thị nút bên dưới', + alwaysShowExpandBtn: 'Luôn hiển thị nút mở rộng', + enableAutoEnterTextEditWhenKeydown: + 'Tự động vào chế độ chỉnh sửa văn bản khi nhấn phím', + confirm: 'Xác nhận', + cancel: 'Hủy', + changeRichTextTip: + 'Thao tác này sẽ xóa tất cả lịch sử chỉnh sửa và sửa đổi dữ liệu sơ đồ tư duy. Bạn có muốn tiếp tục?', + changeRichTextTip2: 'Bạn có muốn chuyển sang chế độ văn bản phong phú?', + changeRichTextTip3: + 'Bạn có muốn chuyển sang chế độ không phải văn bản phong phú?', + enableDragImport: 'Cho phép kéo và thả tệp trực tiếp vào trang để nhập', + imgTextMargin: 'Khoảng cách giữa hình ảnh và văn bản nút', + textContentMargin: 'Khoảng cách nội dung nút', + enableInheritAncestorLineStyle: + 'Kiểu kết nối nút kế thừa kiểu của nút tổ tiên', + enableAi: 'Bật chức năng AI', + rootEnableUnExpand: + 'Liệu root node có cho phép thu hồi cấp dưới hay không?', + settingConfig: 'Thiết lập Mind Map', + title1: 'Nút', + title2: 'Chỉnh sửa', + title3: 'Hiển thị', + title4: 'Khác' + }, + color: { + moreColor: 'Thêm màu' + }, + contextmenu: { + insertSiblingNode: 'Chèn nút cùng cấp', + insertChildNode: 'Chèn nút con', + insertParentNode: 'Chèn nút cha', + insertSummary: 'Chèn tóm tắt', + moveUpNode: 'Di chuyển nút lên', + moveDownNode: 'Di chuyển nút xuống', + deleteNode: 'Xóa nút', + deleteCurrentNode: 'Chỉ xóa nút hiện tại', + copyNode: 'Sao chép nút', + cutNode: 'Cắt nút', + pasteNode: 'Dán nút', + backCenter: 'Quay lại nút gốc', + expandAll: 'Mở rộng tất cả', + unExpandAll: 'Thu gọn tất cả', + expandTo: 'Mở rộng đến', + arrangeLayout: 'Sắp xếp bố cục', + level1: 'Cấp 1', + level2: 'Cấp 2', + level3: 'Cấp 3', + level4: 'Cấp 4', + level5: 'Cấp 5', + level6: 'Cấp 6', + zenMode: 'Chế độ zen', + fitCanvas: 'Vừa với khung vẽ', + removeImage: 'Xóa hình ảnh', + removeHyperlink: 'Xóa liên kết', + removeNote: 'Xóa ghi chú', + removeCustomStyles: 'Xóa kiểu tùy chỉnh', + removeAllNodeCustomStyles: 'Xóa tất cả kiểu tùy chỉnh của nút', + exportNodeToPng: 'Xuất nút thành png', + copyToClipboard: 'Sao chép vào clipboard', + copyToSmm: 'SMM', + copyToJson: 'JSON', + copyToMarkdown: 'Markdown', + copyToTxt: 'Txt', + copyToPng: 'Png', + copySuccess: 'Sao chép thành công', + copyFail: 'Sao chép thất bại', + number: 'Đánh số các nút con', + expandNodeChild: 'Mở rộng tất cả nút con', + unExpandNodeChild: 'Thu gọn tất cả nút con', + addToDo: 'Thêm việc cần làm', + removeToDo: 'Xóa việc cần làm', + aiCreate: 'AI Tiếp tục', + modifyNodeLink: 'Sửa liên kết nút', + linkToNode: 'Liên kết đến nút', + removeNodeLink: 'Xóa liên kết nút', + nodeAlgin: 'Căn chỉnh một nút cùng cấp', + removeCustomWidth: 'Loại bỏ chiều rộng tùy chỉnh', + copyAsInternalUrl: 'Sao chép như một chuỗi bên trong', + removeAllCustomWidth: + 'Loại bỏ tất cả các nút chiều rộng tùy chỉnh với một cú nhấp chuột' + }, + count: { + words: 'Từ', + nodes: 'Nút' + }, + dialog: { + cancel: 'Hủy', + confirm: 'Xác nhận' + }, + export: { + title: 'Xuất', + filename: 'Tên tệp', + include: 'Bao gồm cấu hình như chủ đề và cấu trúc', + dedicatedFile: 'Tệp chuyên dụng', + jsonFile: 'Tệp json', + imageFile: 'Tệp hình ảnh', + svgFile: 'Tệp svg', + pdfFile: 'Tệp pdf', + markdownFile: 'Tệp markdown', + isTransparent: 'Nền là trong suốt', + transformingDomToImages: 'Đang chuyển đổi nút: ', + notifyTitle: 'Thông tin', + notifyMessage: + 'Nếu tải xuống không được kích hoạt, hãy kiểm tra xem có bị chặn bởi trình duyệt hay không', + paddingX: 'Đệm x', + paddingY: 'Đệm y', + useMultiPageExport: 'Xuất nhiều trang', + defaultFileName: 'Sơ đồ tư duy', + addFooterTextPlaceholder: 'Ví dụ: Từ simple-mind-map', + addFooterText: 'Thêm văn bản ở chân trang', + desc: 'Mô tả', + options: 'Tùy chọn', + isFitBg: 'Hiển thị đầy đủ hình nền (có hiệu lực khi dùng hình nền)', + format: 'Định dạng' + }, + fullscreen: { + fullscreenShow: 'Hiển thị toàn màn hình', + fullscreenEdit: 'Chỉnh sửa toàn màn hình' + }, + demonstrate: { + demonstrate: 'Vào chế độ trình diễn' + }, + import: { + title: 'Nhập', + selectFile: 'Chọn tệp', + support: 'Hỗ trợ', + file: 'tệp', + pleaseSelect: 'Vui lòng chọn', + maxFileNum: 'Nhiều nhất chọn một tệp', + notSelectTip: 'Vui lòng chọn tệp để nhập', + fileContentError: 'Nội dung tệp không chính xác', + importSuccess: 'Nhập thành công', + fileParsingFailed: 'Phân tích tệp thất bại', + xmindCanvasSelectDialogTitle: 'Chọn canvas để nhập', + mdImportDialogTitle: 'Dán nội dung Markdown để nhập', + mdPlaceholder: 'Vui lòng nhập nội dung ở định dạng Markdown', + mdEmptyTip: 'Nội dung không được trống' + }, + navigatorToolbar: { + openMiniMap: 'Mở bản đồ thu nhỏ', + closeMiniMap: 'Đóng bản đồ thu nhỏ', + readonly: 'Chuyển sang chế độ chỉ đọc', + edit: 'Chuyển sang chế độ chỉnh sửa', + backToRoot: 'Quay lại nút gốc', + changeSourceCodeEdit: 'Chuyển sang chế độ chỉnh sửa mã nguồn', + shortcutKeys: 'Phím tắt', + ai: 'Đối thoại AI', + downloadClient: 'Tải về khách hàng', + site: 'Trang web chính thức', + current: 'Hiện tại:', + downloadDesc: 'Có thể download từ địa chỉ sau:', + searchReplace: 'Tìm kiếm thay thế', + exitDarkMode: 'Thoát khỏi Dark Mode', + darkMode: 'Chuyển sang chế độ Dark Mode', + darkModeFailTip: + 'Chuyển đổi không thành công, hiện đang theo chế độ obsidian', + export: 'Xuất' + }, + nodeHyperlink: { + title: 'Liên kết', + link: 'Href', + name: 'Tên', + tabName1: 'Địa chỉ web thông thường', + tabName2: 'Tài liệu Obsidian', + tabName3: 'Tập tin cục bộ', + selectLocalFile: 'Chọn tập tin cục bộ', + none: 'Không', + delete: 'Xoá', + add: 'Thêm', + tip1: 'Vui lòng nhập địa chỉ liên kết', + tip2: 'Chèn không thành công, tập tin không tồn tại', + tip3: 'Vui lòng chọn tập tin cục bộ', + tip4: 'Tải tập tin lên Vault không thành công' + }, + nodeIcon: { + title: 'Biểu tượng' + }, + nodeImage: { + title: 'Hình ảnh', + imgTitle: 'Tiêu đề', + tip: + 'Mẹo: Nếu bạn muốn dán hình ảnh, bạn không cần phải mở cửa sổ bật, chỉ cần nhấn Ctrl+v để dán sau khi kích hoạt nút.', + method1: 'Cách 1', + method2: 'Cách 2', + tip2: 'Vui lòng nhập địa chỉ ảnh', + optional: 'Tùy chọn', + selectLocal: 'Chọn từ địa phương', + selectVault: 'Chọn Vault', + selectUrl: 'Hình ảnh web', + imgTitle: 'Tiêu đề ảnh (tùy chọn)' + }, + nodeNote: { + title: 'Ghi chú' + }, + nodeTag: { + title: 'Thẻ', + addTip: 'Vui lòng nhấn Enter để thêm tối đa 5 tab' + }, + outline: { + title: 'Dàn bài', + nodeDefaultText: 'Nhánh nút', + print: 'In', + fullscreen: 'Toàn màn hình', + tip1: 'Chèn nút huynh đệ:', + tip2: 'Chèn nút con:', + tip3: 'Nâng cấp nút:', + tip4: 'Xóa nút:', + tip5: 'Giữ nút để kéo' + }, + scale: { + zoomIn: 'Phóng to', + zoomOut: 'Thu nhỏ' + }, + shortcutKey: { + title: 'Phím tắt' + }, + strusture: { + title: 'Cấu trúc' + }, + style: { + title: 'Kiểu nút', + normal: 'Bình thường', + active: 'Kích hoạt', + text: 'Văn bản', + fontFamily: 'Phông chữ', + fontSize: 'Cỡ chữ', + color: 'Màu sắc', + addFontWeight: 'Thêm độ đậm chữ', + italic: 'Nghiêng', + textDecoration: 'Trang trí văn bản', + underline: 'Gạch dưới', + none: 'Không', + lineThrough: 'Gạch ngang', + overline: 'Gạch trên', + border: 'Viền', + style: 'Kiểu dáng', + width: 'Độ rộng', + borderRadius: 'Độ cong viền', + background: 'Nền', + shape: 'Hình dạng', + line: 'Đường kẻ', + nodePadding: 'Đệm nút', + horizontal: 'Ngang', + vertical: 'Dọc', + gradientStyle: 'Gradient', + startColor: 'Bắt đầu', + endColor: 'Kết thúc', + arrowDir: 'Hướng mũi tên', + arrowDirStart: 'Bắt đầu', + arrowDirEnd: 'Kết thúc', + direction: 'Hướng', + selectNodeTip: 'Vui lòng chọn một nút', + openLineFlow: 'Mở luồng đường kẻ', + lineFlowDuration: 'Thời lượng luồng đường kẻ', + forward: 'Tiến tới', + reverse: 'Đảo ngược', + img: 'Hình ảnh', + placement: 'Vị trí', + top: 'Trên', + bottom: 'Dưới', + left: 'Trái', + right: 'Phải', + tag: 'Thẻ' + }, + theme: { + title: 'Chủ đề', + classics: 'Cổ điển', + dark: 'Tối', + simple: 'Đơn giản', + coverTip: 'Bạn hiện đã tùy chỉnh kiểu cơ bản, bạn có muốn ghi đè không?', + tip: 'Mẹo', + cover: 'Ghi đè', + reserve: 'Giữ lại' + }, + toolbar: { + undo: 'Hoàn tác', + redo: 'Làm lại', + insertSiblingNode: 'Nút cùng cấp', + insertChildNode: 'Nút con', + deleteNode: 'Xóa nút', + image: 'Hình ảnh', + icon: 'Biểu tượng', + link: 'Liên kết', + note: 'Ghi chú', + tag: 'Thẻ', + summary: 'Tóm tắt', + displayOutline: 'Hiển thị dàn bài', + baseStyle: 'Kiểu cơ bản', + theme: 'Chủ đề', + strusture: 'Cấu trúc', + newFile: 'Tệp mới', + openFile: 'Mở tệp', + saveAs: 'Lưu thành', + import: 'Nhập', + export: 'Xuất', + shortcutKey: 'Phím tắt', + associativeLine: 'Đường liên kết', + painter: 'Bút vẽ', + formula: 'Công thức', + attachment: 'Đính kèm', + outerFrame: 'Khung ngoài', + more: 'Thêm', + selectFileTip: 'Vui lòng chọn một tệp', + notSupportTip: + 'Trình duyệt của bạn không hỗ trợ tính năng này, hoặc trang hiện tại không sử dụng giao thức HTTPS', + tip: 'Mẹo', + editingLocalFileTipFront: 'Hiện đang chỉnh sửa tệp cục bộ【', + editingLocalFileTipEnd: '】của bạn', + fileContentError: 'Lỗi nội dung tệp', + fileOpenFailed: 'Mở tệp thất bại', + defaultFileName: 'Sơ đồ tư duy', + creatingTip: 'Đang tạo tệp', + directory: 'Thư mục', + newFileTip: + 'Vui lòng xuất tệp đang chỉnh sửa trước khi tạo mới, Cẩn thận mất nội dung', + openFileTip: + 'Vui lòng xuất tệp đang chỉnh sửa trước khi mở tệp, Cẩn thận mất nội dung', + ai: 'AI' + }, + edit: { + newFeatureNoticeTitle: 'Nhắc nhở tính năng mới', + newFeatureNoticeMessage: + 'Cập nhật này hỗ trợ chỉnh sửa văn bản phong phú cho nút, Nhưng có một số thiếu sót, Tác động quan trọng nhất là thời gian xuất hình ảnh tỷ lệ thuận với số lượng nút, Do đó, nếu bạn phụ thuộc nhiều vào yêu cầu xuất, bạn có thể sử dụng【Kiểu cơ bản】-【Cấu hình khác】-【Cho phép chỉnh sửa văn bản phong phú của nút】Đặt để tắt chế độ chỉnh sửa văn bản phong phú.', + root: 'Nút gốc', + splitByWrap: 'Tự động tách nút dựa trên ngắt dòng?', + tip: 'Mẹo', + yes: 'Có', + no: 'Không', + exportError: 'Xuất thất bại', + dragTip: 'Thả ở đây để nhập tệp', + deleteNodeImgTip: 'Bạn có chắc xóa hình ảnh nút?', + autoOpenNodeRichTextTip: + 'Phát hiện nội dung văn bản phong phú nhập vào, tự động bật chế độ văn bản phong phú', + localStorageExceededTip: + 'Dung lượng sơ đồ tư duy bạn tạo đã vượt quá giới hạn lưu trữ tối đa cho phép của trình duyệt. Vui lòng xuất ngay lập tức, nếu không dữ liệu sẽ bị mất! Nên tải xuống ứng dụng khách để sử dụng, vì không có giới hạn kích thước khi sử dụng ứng dụng khách.', + withBg: 'Với Background', + tryTipTitle: 'Mẹo dùng thử chức năng', + tryTipDesc: + 'Chức năng này là chức năng dùng thử trong phiên bản web, xin vui lòng tải xuống để khách hàng sử dụng:', + downBaidu: 'Tải xuống Baidu', + downGithub: 'Tải xuống Github', + painterTip: 'Nhấp vào khoảng trống Canvas để hủy hoặc kết thúc', + createAssociativeLineTip: 'Nhấp vào Canvas Blank để hủy', + savingTip: 'Đang lưu, vui lòng thử lại sau', + savingTip2: 'Bản đồ tư duy trống hoặc đang hiển thị, hãy thử lại sau', + savingTip3: 'Lưu thành công', + savingTip4: 'Lỗi lưu', + defaultInsertSecondLevelNodeText: 'Nút thứ cấp', + defaultInsertBelowSecondLevelNodeText: 'Chủ đề chi nhánh', + defaultGeneralizationText: 'Giới thiệu', + defaultAssociativeLineText: 'Liên kết', + defaultOuterFrameText: 'Khung ngoài', + pasteImage: 'Dán-hình-ảnh' + }, + mouseAction: { + tip1: + 'Hiện tại: Nhấp chuột trái để kéo canvas, nhấp chuột phải để chọn nút theo hộp. Nhấn để chuyển đổi', + tip2: + 'Hiện tại: Nhấp chuột trái để chọn nút theo hộp, nhấp chuột phải để kéo canvas. Nhấn để chuyển đổi' + }, + search: { + searchPlaceholder: 'Nhập nội dung tìm kiếm và nhấn Enter', + replacePlaceholder: 'Vui lòng nhập nội dung thay thế', + replace: 'Thay thế', + replaceAll: 'Thay thế tất cả', + cancel: 'Hủy', + noResult: 'Không có kết quả' + }, + nodeIconSidebar: { + title: 'Biểu tượng/Sticker', + icon: 'Biểu tượng', + sticker: 'Sticker' + }, + formulaSidebar: { + title: 'Công thức', + placeholder: 'Vui lòng nhập cú pháp LaTeX', + confirm: 'Xác nhận', + common: 'Công thức phổ biến', + tip: 'Không hỗ trợ chèn công thức trong chế độ không phải văn bản phong phú' + }, + richTextToolbar: { + bold: 'Đậm', + italic: 'Nghiêng', + underline: 'Gạch dưới', + strike: 'Gạch ngang', + fontFamily: 'Phông chữ', + fontSize: 'Cỡ chữ', + color: 'Màu sắc', + backgroundColor: 'Màu nền', + removeFormat: 'Xóa định dạng', + textAlign: 'Căn chỉnh văn bản' + }, + other: { + loading: 'Đang tải, vui lòng đợi...' + }, + sourceCodeEdit: { + sourceCodeTip: + 'Không nên sửa kiểu trong chế độ văn bản phong phú vì cần phải đồng bộ sửa đổi dữ liệu và cấu trúc HTML.', + format: 'Định dạng', + copy: 'Sao chép', + confirm: 'Hoàn thành', + close: 'Đóng', + formatErrorTip: + 'Định dạng JSON không chính xác. Vui lòng kiểm tra và thử lại', + copyTip: 'Đã sao chép vào clipboard', + formatTip: 'Định dạng hoàn thành' + }, + attachment: { + deleteAttachment: 'Xóa đính kèm', + tip: 'Chức năng đính kèm chỉ có sẵn ở phía máy khách' + }, + annotation: { + mark: 'Đánh dấu', + show: 'Hiển thị đánh dấu', + type: 'Loại', + color: 'Màu sắc', + lineWidth: 'Độ rộng đường kẻ', + padding: 'Đệm', + animate: 'Hoạt ảnh' + }, + nodeOuterFrame: { + outerFrameSetting: 'Cài đặt khung ngoài', + deleteOuterFrame: 'Xóa khung ngoài', + boxStyle: 'Kiểu hộp', + boxColor: 'Màu hộp', + fillColor: 'Màu lấp đầy', + nodeOuterFrameStyle: 'Kiểu khung ngoài', + outerFrameText: 'Văn bản khung ngoài', + deleteOuterFrameText: 'Xóa văn bản khung ngoài', + fontFamily: 'Phông chữ', + color: 'Màu sắc', + fontSize: 'Cỡ chữ', + radius: 'Độ cong', + fontBold: 'Đậm chữ', + italic: 'Nghiêng', + lineHeight: 'Chiều cao dòng', + textFillRadius: 'Độ cong lấp đầy văn bản', + textFill: 'Màu lấp đầy văn bản', + textAlign: 'Căn chỉnh văn bản', + left: 'Trái', + center: 'Giữa', + right: 'Phải', + paddingX: 'Đệm x', + paddingY: 'Đệm y', + constainsChildren: 'Hộp bên ngoài có chứa các nút con hay không' + }, + nodeTagStyle: { + placeholder: 'Vui lòng nhập nội dung thẻ', + delete: 'Xóa thẻ này' + }, + ai: { + chatTitle: 'Đối thoại AI', + clearRecords: 'Xóa lịch sử', + connectFailedTitle: 'Thông báo lỗi kết nối máy khách', + connectFailedTip: 'Kết nối máy khách thất bại, vui lòng kiểm tra:', + connectFailedCheckTip1: + '1. Bạn đã cài đặt ứng dụng khách sơ đồ tư duy chưa? Nếu chưa, vui lòng nhấp vào đây để cài đặt:', + connectFailedCheckTip2: + '2. Nếu đã cài đặt ứng dụng khách, vui lòng xác nhận xem ứng dụng khách đã được mở chưa.', + connectFailedCheckTip3: + 'Nếu đã được cài đặt và khởi động, bạn có thể thử đóng và khởi động lại nó.', + connectFailedCheckTip4: + 'Sau khi hoàn thành các bước trên, bạn có thể nhấp vào:', + baiduNetdisk: 'Baidu Netdisk', + createMindMapTitle: 'Tạo sơ đồ tư duy một nhấp', + createTip: + 'Vui lòng nhập chủ đề, và AI sẽ tạo sơ đồ tư duy dựa trên chủ đề của bạn, chẳng hạn như: Kế hoạch du lịch cuối tuần Hà Nội.', + importantTip: + 'Lưu ý quan trọng: Tạo một nhấp sẽ ghi đè dữ liệu hiện có. Nên xuất dữ liệu hiện tại trước.', + wantModifyAiConfigTip: 'Bạn muốn sửa đổi cấu hình AI? Vui lòng nhấp vào:', + modifyAIConfiguration: 'Sửa đổi cấu hình AI', + chatInputPlaceholder: 'Nhấn Enter để gửi, Shift+Enter để xuống dòng.', + send: 'Gửi', + stopGenerating: 'Dừng tạo', + generationFailed: 'Tạo thất bại', + aiGenerationSuccess: 'Tạo AI hoàn thành', + stoppedGenerating: 'Đã dừng tạo', + AIConfiguration: 'Cấu hình AI', + VolcanoArkLargeModelConfiguration: 'Cấu hình mô hình lớn Volcano Ark:', + configTip: + 'Hiện tại, chỉ hỗ trợ mô hình Volcano Ark, và bạn cần tự mình lấy khóa. Để biết các bước thực hiện chi tiết, vui lòng tham khảo:', + course: 'Khóa học', + inferenceAccessPoint: 'Điểm truy cập suy luận', + mindMappingClientConfiguration: 'Cấu hình ứng dụng khách sơ đồ tư duy:', + port: 'Cổng', + cancel: 'Hủy', + confirm: 'Xác nhận', + close: 'Đóng', + configSaveSuccessTip: 'Lưu cấu hình thành công', + apiValidateTip: 'Vui lòng nhập giao diện', + keyValidateTip: 'Vui lòng nhập API Key', + modelValidateTip: 'Vui lòng nhập điểm truy cập suy luận', + portValidateTip: 'Vui lòng nhập cổng', + methodValidateTip: 'Vui lòng chọn phương thức yêu cầu', + noInputTip: 'Vui lòng nhập nội dung', + connectSuccessful: 'Kết nối thành công', + connectFailed: 'Kết nối thất bại', + connectionDetection: 'Phát hiện kết nối', + configurationMissing: 'Thiếu cấu hình', + aiCreateMsgPrefix: 'Giúp tôi viết một【', + aiCreateMsgPostfix: + '】. Nó cần được trả về ở định dạng Markdown và chỉ có thể sử dụng hai cú pháp: tiêu đề Markdown và danh sách không có thứ tự. Nó có thể hỗ trợ nhiều lớp lồng nhau. Chỉ cần trả về nội dung.', + aiCreatePartMsgPrefix: 'Tôi có một chủ đề là【', + aiCreatePartMsgCenter: + '】Bạn có thể giúp tôi tiếp tục viết một trong những nội dung của sơ đồ tư duy【', + aiCreatePartMsgPostfix: '】Nội dung phụ thuộc của nút', + aiCreatePartMsgHelp: + '. Cần được trả về ở định dạng Markdown và chỉ có thể sử dụng hai cú pháp: tiêu đề Markdown và danh sách không có thứ tự. Nó có thể hỗ trợ lồng ghép nhiều cấp độ. Chỉ cần trả về nội dung.', + aiCreatePart: 'AI Tiếp tục' + }, + note: { + title: 'Ghi chú' + }, + nodeLink: { + linkToNode: 'Liên kết đến nút', + addReturn: 'Thêm liên kết trở lại', + tip1: 'Vui lòng chọn nút để liên kết đến', + tip2: 'Không thể liên kết đến chính mình', + tip3: 'Liên kết thành công', + tip4: 'Xóa thành công', + tip5: 'Nút liên kết không tồn tại. Có nên xóa liên kết không?' + }, + ciod: { + outputConfig: 'Cấu hình xuất', + importConfig: 'Cấu hình nhập', + tip1: 'Vui lòng chọn file json', + tip2: 'Định dạng nội dung tập tin không chính xác', + tip3: 'Nhập thành công', + tip4: 'Nhập thất bại' + }, + imageUpload: { + tip: 'Nhấn vào đây để chọn ảnh hoặc kéo ảnh đến đây', + failTip: 'Hình ảnh tải lên thất bại' + }, + fileSelectList: { + searchPlaceholder: 'Tìm kiếm tên tập tin' + }, + guide: { + btn: 'Đóng hướng dẫn', + tip1: + 'Để cập nhật ![[]] được nhúng trong các tài liệu khác với hình ảnh xem trước, bạn cần phải nhấn lại lưu', + tip2: + 'Sau khi kích hoạt nút, bạn có thể sửa đổi nội dung nút ở đây (hình ảnh, biểu tượng...)', + tip3: + 'Đây là nơi bạn có thể sửa đổi kiểu nút, chuyển đổi chủ đề/kiến trúc, v.v.', + tip4: 'Đây là nơi bạn có thể xem thông tin ngắn gọn về các phím tắt', + tip5: + 'Đây là nơi bạn có thể tìm thấy các chức năng trợ giúp (bản đồ nhỏ, chế độ xem...)' + }, + previewMode: { + emptyTitle: 'Chưa giải quyết dữ liệu có thể kết xuất', + emptyDesc: + 'Hiện tại chỉ có thể phân tích một số cú pháp markdown, chẳng hạn như tiêu đề và danh sách.', + close: 'Đóng cửa' + } +} diff --git a/plugin/src/lang/zh_cn.js b/plugin/src/lang/zh_cn.js new file mode 100644 index 0000000..59f883e --- /dev/null +++ b/plugin/src/lang/zh_cn.js @@ -0,0 +1,611 @@ +export default { + baseStyle: { + title: '基础样式', + background: '背景', + color: '颜色', + image: '图片', + imageRepeat: '图片重复', + imagePosition: '图片位置', + imageSize: '图片大小', + line: '连线', + width: '粗细', + style: '风格', + lineRadius: '圆角大小', + lineOfOutline: '概要的连线', + showArrow: '显示箭头', + nodePadding: '节点内边距', + nodeMargin: '节点外边距', + horizontal: '水平', + vertical: '垂直', + maximumWidth: '显示的最大宽度', + maximumHeight: '显示的最大高度', + icon: '图标', + size: '大小', + level2Node: '二级节点', + belowLevel2Node: '三级及以下节点', + nodeBorderType: '节点边框风格', + nodeUseLineStyle: '使用只有底边框的风格', + associativeLine: '关联线', + associativeLineWidth: '粗细', + associativeLineColor: '颜色', + associativeLineActiveWidth: '激活粗细', + associativeLineActiveColor: '激活颜色', + rootStyle: '根节点', + associativeLineText: '关联线文字', + fontFamily: '字体', + fontSize: '字号', + rootLineStartPos: '根节点连线起始位置', + center: '中心', + edge: '边缘', + rainbowLines: '彩虹线条', + notUseRainbowLines: '不使用彩虹线条', + outerFramePadding: '外框内边距', + associativeLineStyle: '关联线样式', + builtInBackgroundImage: '内置背景图片', + baseStyleConfig: '思绪思维导图基础样式配置' + }, + setting: { + title: '设置', + openPerformance: '性能模式(Beta)', + enableFreeDrag: '开启节点自由拖拽', + isEnableNodeRichText: '开启节点富文本编辑', + mousewheelAction: '鼠标滚轮行为', + zoomView: '缩放视图', + moveViewUpDown: '上下移动视图', + mousewheelZoomActionReverse: '鼠标滚轮缩放', + mousewheelZoomActionReverse1: '向前缩小向后放大', + mousewheelZoomActionReverse2: '向前放大向后缩小', + createNewNodeBehavior: '创建新节点的行为', + default: '激活新节点及进入编辑', + notActive: '不激活新节点', + activeOnly: '只激活新节点,不进入编辑', + openRealtimeRenderOnNodeTextEdit: '开启文本编辑实时渲染效果', + isShowScrollbar: '显示滚动条', + isUseHandDrawnLikeStyle: '开启手绘风格', + isUseMomentum: '开启拖动画布的动量效果', + isUseSameNodeAlign: '开启同级节点对齐', + openBlankMode: '开启演示模式的填空功能', + watermark: '水印', + showWatermark: '显示水印', + watermarkDefaultText: '水印文字', + onlyExport: '仅在导出时显示', + watermarkText: '水印文字', + watermarkTextColor: '文字颜色', + watermarkLineSpacing: '水印行间距', + watermarkTextSpacing: '水印文字间距', + watermarkAngle: '旋转角度', + watermarkTextOpacity: '文字透明度', + watermarkTextFontSize: '文字字号', + belowNode: '显示在节点下方', + alwaysShowExpandBtn: '一直显示展开收起按钮', + enableAutoEnterTextEditWhenKeydown: '键盘输入时自动进入文本编辑', + enableInheritAncestorLineStyle: '节点连线样式继承祖先节点的样式', + confirm: '确定', + cancel: '取消', + changeRichTextTip: + '该操作会清空所有历史修改记录,并且修改思维导图数据,是否继续?', + changeRichTextTip2: '是否切换为富文本模式?', + changeRichTextTip3: '是否切换为非富文本模式?', + enableDragImport: '允许直接拖拽文件到页面进行导入', + imgTextMargin: '节点图片和文本间隔', + textContentMargin: '节点各种内容间隔', + enableAi: '显示AI功能入口', + rootEnableUnExpand: '根节点允许收起下级', + settingConfig: '思绪思维导图设置', + title1: '节点', + title2: '编辑', + title3: '显示', + title4: '其他' + }, + color: { + moreColor: '更多颜色' + }, + contextmenu: { + insertSiblingNode: '插入同级节点', + insertChildNode: '插入子级节点', + insertParentNode: '插入父节点', + insertSummary: '插入概要', + moveUpNode: '上移节点', + moveDownNode: '下移节点', + deleteNode: '删除节点', + deleteCurrentNode: '仅删除当前节点', + copyNode: '复制节点', + cutNode: '剪切节点', + pasteNode: '粘贴节点', + backCenter: '回到根节点', + expandAll: '展开所有', + unExpandAll: '收起所有', + expandTo: '展开到', + arrangeLayout: '一键整理布局', + level1: '一级主题', + level2: '二级主题', + level3: '三级主题', + level4: '四级主题', + level5: '五级主题', + level6: '六级主题', + zenMode: '禅模式', + fitCanvas: '适应画布', + removeImage: '移除图片', + removeHyperlink: '移除超链接', + removeNote: '移除备注', + removeCustomStyles: '一键去除自定义样式', + removeAllNodeCustomStyles: '一键去除所有节点自定义样式', + exportNodeToPng: '导出该节点为图片', + copyToClipboard: '复制到剪贴板', + copyToSmm: 'SMM', + copyToJson: 'JSON', + copyToMarkdown: 'Markdown', + copyToTxt: 'Txt', + copyToPng: '图片', + copySuccess: '复制成功', + copyFail: '复制失败', + number: '编号其子节点', + expandNodeChild: '展开所有下级节点', + unExpandNodeChild: '收起所有下级节点', + addToDo: '添加待办', + removeToDo: '删除待办', + aiCreate: 'AI续写', + modifyNodeLink: '修改节点链接', + linkToNode: '链接到指定节点', + removeNodeLink: '删除节点链接', + nodeAlgin: '一键同级节点对齐', + removeCustomWidth: '去除自定义宽度', + copyAsInternalUrl: '复制为ob内链', + removeAllCustomWidth: '一键去除所有节点自定义宽度' + }, + count: { + words: '字数', + nodes: '节点' + }, + dialog: { + cancel: '取消', + confirm: '确定' + }, + export: { + title: '导出', + filename: '导出文件名称', + include: '包含主题、结构等配置数据', + dedicatedFile: '专有文件', + jsonFile: 'json文件', + imageFile: '图片文件', + svgFile: 'svg文件', + pdfFile: 'pdf文件', + markdownFile: 'markdown文件', + isTransparent: '背景透明', + transformingDomToImages: '正在转换节点:', + notifyTitle: '消息', + notifyMessage: '如果没有触发下载,请检查是否被浏览器拦截了', + paddingX: '水平内边距', + paddingY: '垂直内边距', + useMultiPageExport: '多页导出', + defaultFileName: '思维导图', + addFooterText: '底部添加文字', + addFooterTextPlaceholder: '比如:来自simple-mind-map', + desc: '说明', + options: '选项', + isFitBg: '显示完整背景图片(使用了背景图片时生效)', + format: '格式', + confirm: '导出' + }, + fullscreen: { + fullscreenShow: '全屏查看', + fullscreenEdit: '全屏编辑' + }, + demonstrate: { + demonstrate: '进入演示模式' + }, + import: { + title: '导入', + selectFile: '选取文件', + support: '支持', + file: '文件', + pleaseSelect: '请选择', + maxFileNum: '最多只能选择一个文件', + notSelectTip: '请选择要导入的文件', + fileContentError: '文件内容有误', + importSuccess: '导入成功', + fileParsingFailed: '文件解析失败', + xmindCanvasSelectDialogTitle: '选择要导入的画布', + mdImportDialogTitle: '粘贴Markdown内容导入', + mdPlaceholder: '请输入Markdown格式的内容', + mdEmptyTip: '内容不能为空' + }, + navigatorToolbar: { + openMiniMap: '开启小地图', + closeMiniMap: '关闭小地图', + readonly: '切换为只读模式', + edit: '切换为编辑模式', + backToRoot: '回到根节点', + changeSourceCodeEdit: '切换为源码编辑模式', + shortcutKeys: '快捷键', + ai: 'AI对话', + downloadClient: '下载客户端', + site: '官方网站', + current: '当前:', + downloadDesc: '可从如下地址下载:', + searchReplace: '搜索替换', + exitDarkMode: '退出暗黑模式', + darkMode: '切换为暗黑模式', + darkModeFailTip: '切换失败,当前为跟随obsidian模式', + export: '导出' + }, + nodeHyperlink: { + title: '超链接', + link: '链接', + name: '名称', + tabName1: '普通网址', + tabName2: 'Obsidian文件', + tabName3: '本地文件', + selectLocalFile: '选择本地文件', + none: '无', + delete: '删除', + add: '添加', + tip1: '请输入链接地址', + tip2: '插入失败,文件不存在', + tip3: '请选择本地文件', + tip4: '文件上传到Vault中失败' + }, + nodeIcon: { + title: '图标' + }, + nodeImage: { + title: '图片', + imgTitle: '图片标题', + tip: + 'tips:如果你是要粘贴图片,那么不需要打开该弹窗,直接激活节点后按Ctrl+v粘贴即可。', + method1: '方式一', + method2: '方式二', + tip2: '请输入图片地址', + optional: '可选', + selectLocal: '从本地选择', + selectVault: '从Vault选择', + selectUrl: '网络图片', + imgTitle: '图片标题(可选)' + }, + nodeNote: { + title: '备注' + }, + nodeTag: { + title: '标签', + addTip: '请按回车键添加,最多可添加五个标签' + }, + outline: { + title: '大纲', + nodeDefaultText: '分支节点', + print: '打印', + fullscreen: '全屏', + tip1: '插入兄弟节点:', + tip2: '插入子节点:', + tip3: '节点上移层级:', + tip4: '删除节点:', + tip5: '按住节点可拖拽' + }, + scale: { + zoomIn: '放大', + zoomOut: '缩小' + }, + shortcutKey: { + title: '快捷键' + }, + strusture: { + title: '结构' + }, + style: { + title: '节点样式', + normal: '常态', + active: '选中状态', + text: '文字', + fontFamily: '字体', + fontSize: '字号', + color: '颜色', + addFontWeight: '加粗', + italic: '斜体', + textDecoration: '划线', + none: '无', + underline: '下划线', + lineThrough: '中划线', + overline: '上划线', + border: '边框', + style: '样式', + width: '宽度', + borderRadius: '圆角', + background: '背景', + shape: '形状', + line: '线条', + nodePadding: '节点内边距', + horizontal: '水平', + vertical: '垂直', + gradientStyle: '渐变', + startColor: '起始', + endColor: '结束', + arrowDir: '箭头位置', + arrowDirStart: '头部', + arrowDirEnd: '尾部', + direction: '方向', + selectNodeTip: '请选择一个节点', + openLineFlow: '开启流动效果', + lineFlowDuration: '一个流动周期的时间', + forward: '正向', + reverse: '反向', + img: '图片', + placement: '布局', + top: '上', + bottom: '下', + left: '左', + right: '右', + tag: '标签' + }, + theme: { + title: '主题', + classics: '经典', + dark: '深色', + simple: '朴素', + coverTip: '你当前自定义过基础样式,是否覆盖?', + tip: '提示', + cover: '覆盖', + reserve: '保留' + }, + toolbar: { + undo: '回退', + redo: '前进', + insertSiblingNode: '节点', + insertChildNode: '子节点', + deleteNode: '删除', + image: '图片', + icon: '图标', + link: '超链接', + note: '备注', + tag: '标签', + summary: '概要', + displayOutline: '显示大纲', + baseStyle: '基础样式', + theme: '主题', + strusture: '结构', + newFile: '新建', + openFile: '打开', + saveAs: '另存为', + import: '导入', + export: '导出', + shortcutKey: '快捷键', + associativeLine: '关联线', + painter: '格式刷', + formula: '公式', + attachment: '附件', + outerFrame: '外框', + more: '更多', + selectFileTip: '请选择文件', + notSupportTip: '你的浏览器不支持该功能,或者当前页面非https协议', + tip: '提示', + editingLocalFileTipFront: '当前正在编辑你本机的【', + editingLocalFileTipEnd: '】文件', + fileContentError: '文件内容有误', + fileOpenFailed: '文件打开失败', + defaultFileName: '思维导图', + creatingTip: '正在创建文件', + directory: '目录', + newFileTip: '新建文件前请先导出当前编辑的文件,谨防内容丢失', + openFileTip: '打开文件前请先导出当前编辑的文件,谨防内容丢失', + ai: 'AI' + }, + edit: { + newFeatureNoticeTitle: '新特性提醒', + newFeatureNoticeMessage: + '本次更新支持了节点富文本编辑,但是存在一定缺陷,最主要的影响是导出为图片的时间和节点数量成正比,所以对导出需求比较依赖的话可以通过【基础样式】-【其他配置】-【开启节点富文本编辑】设置关掉富文本编辑模式。', + root: '根节点', + splitByWrap: '是否按换行自动分割节点?', + tip: '提示', + yes: '是', + no: '否', + exportError: '导出失败', + dragTip: '在此释放以导入该文件', + deleteNodeImgTip: '是否确认删除该节点图片?', + autoOpenNodeRichTextTip: '检测到导入了富文本内容,已自动开启富文本模式', + localStorageExceededTip: + '你创建的思维导图体积已经超过浏览器允许存储的上限,请立即导出,否则数据将丢失!建议下载客户端进行使用,客户端无大小限制。', + withBg: '带背景', + tryTipTitle: '功能试用提示', + tryTipDesc: '该功能在网页版中为试用功能,请下载客户端使用:', + downBaidu: '去百度网盘下载', + downGithub: '去Github下载', + painterTip: '点击画布空白处结束操作', + createAssociativeLineTip: '点击画布空白处取消操作', + savingTip: '正在保存中,请稍后再试', + savingTip2: '思维导图为空,或正在渲染中,请稍后再试', + savingTip3: '保存成功', + savingTip4: '保存失败', + defaultInsertSecondLevelNodeText: '二级节点', + defaultInsertBelowSecondLevelNodeText: '分支主题', + defaultGeneralizationText: '概要', + defaultAssociativeLineText: '关联', + defaultOuterFrameText: '外框', + pasteImage: '粘贴图片' + }, + mouseAction: { + tip1: '当前:左键拖动画布,右键框选节点。点击可切换', + tip2: '当前:左键框选节点,右键拖动画布。点击可切换' + }, + search: { + searchPlaceholder: '输入查找内容后按回车键', + replacePlaceholder: '请输入替换内容', + replace: '替换', + replaceAll: '全部替换', + cancel: '取消', + noResult: '暂无结果' + }, + nodeIconSidebar: { + title: '图标/贴纸', + icon: '图标', + sticker: '贴纸' + }, + formulaSidebar: { + title: '公式', + placeholder: '请输入 LaTeX 语法', + confirm: '完成', + common: '常用公式', + tip: '非富文本模式下不支持插入公式' + }, + richTextToolbar: { + bold: '加粗', + italic: '斜体', + underline: '下划线', + strike: '删除线', + fontFamily: '字体', + fontSize: '字号', + color: '字体颜色', + backgroundColor: '背景颜色', + removeFormat: '清除样式', + textAlign: '对齐方式' + }, + other: { + loading: '正在加载,请稍后...' + }, + sourceCodeEdit: { + sourceCodeTip: + '富文本模式下不建议修改样式,因为需要同步修改数据及html结构。', + format: '格式化', + copy: '复制', + confirm: '完成', + close: '关闭', + formatErrorTip: 'JSON格式有误,请检查后再试', + copyTip: '已复制到剪贴板', + formatTip: '格式化完成' + }, + attachment: { + deleteAttachment: '删除附件', + tip: '附件功能仅在客户端可用' + }, + annotation: { + mark: '标记', + show: '显示标记', + type: '类型', + color: '颜色', + lineWidth: '线宽', + padding: '内边距', + animate: '开启动画' + }, + nodeOuterFrame: { + nodeOuterFrameStyle: '外框样式', + outerFrameSetting: '外框', + deleteOuterFrame: '删除外框', + boxStyle: '边框样式', + boxColor: '边框颜色', + fillColor: '填充颜色', + outerFrameText: '外框文字', + deleteOuterFrameText: '删除文字', + fontFamily: '字体', + color: '颜色', + fontSize: '字号', + radius: '圆角', + fontBold: '加粗', + italic: '斜体', + lineHeight: '行高', + textFillRadius: '背景圆角', + textFill: '背景填充', + textAlign: '显示位置', + left: '左', + center: '中', + right: '右', + paddingX: '水平内边距', + paddingY: '垂直内边距', + constainsChildren: '外框包含子节点' + }, + nodeTagStyle: { + placeholder: '请输入标签内容', + delete: '删除此标签' + }, + ai: { + chatTitle: 'AI对话', + clearRecords: '清空记录', + connectFailedTitle: '客户端连接失败提示', + connectFailedTip: '客户端连接失败,请检查:', + connectFailedCheckTip1: + '1.是否安装了思绪思维导图客户端,如果没有请点此安装:', + connectFailedCheckTip2: '2.如果安装了客户端,请确认是否打开了客户端。', + connectFailedCheckTip3: + '3.如果已经安装并启动了,那么可以尝试关闭然后重新启动。', + connectFailedCheckTip4: '完成以上步骤后可点击:', + baiduNetdisk: '百度网盘', + createMindMapTitle: '一键生成思维导图', + createTip: + '请输入一个主题,AI会根据你的主题生成思维导图,如:杭州周末出游计划。', + importantTip: '重要提示:一键生成会覆盖现有数据,建议先导出当前数据。', + wantModifyAiConfigTip: '想要修改AI配置?请点击:', + modifyAIConfiguration: '修改AI配置', + chatInputPlaceholder: 'Enter 发送,Shift + Enter 换行。', + send: '发送', + stopGenerating: '停止生成', + generationFailed: '生成失败', + aiGenerationSuccess: 'AI生成完成', + stoppedGenerating: '已停止生成', + AIConfiguration: 'AI配置', + VolcanoArkLargeModelConfiguration: '火山方舟大模型配置:', + configTip: '目前仅支持火山方舟大模型,需要自行去获取key,详细操作步骤见:', + course: '教程', + inferenceAccessPoint: '推理接入点', + mindMappingClientConfiguration: '思绪思维导图客户端配置:', + port: '端口', + cancel: '取消', + confirm: '确认', + close: '关闭', + configSaveSuccessTip: '配置保存成功', + apiValidateTip: '请输入接口', + keyValidateTip: '请输入API Key', + modelValidateTip: '请输入推理接入点', + portValidateTip: '请输入端口', + methodValidateTip: '请选择请求方式', + noInputTip: '请输入内容', + connectSuccessful: '连接成功', + connectFailed: '连接失败', + connectionDetection: '连接检测', + configurationMissing: '配置缺失', + aiCreateMsgPrefix: '帮我写一个【', + aiCreateMsgPostfix: + '】,需要以Markdown格式返回,并且只能使用Markdown的标题和无序列表两种语法,可以支持多层嵌套。只需返回内容即可。', + aiCreatePartMsgPrefix: '我有一个主题为【', + aiCreatePartMsgCenter: '】的思维导图,帮我续写其中一个内容为【', + aiCreatePartMsgPostfix: '】的节点的下级内容', + aiCreatePartMsgHelp: + '。需要以Markdown格式返回,并且只能使用Markdown的标题和无序列表两种语法,可以支持多层嵌套。只需返回内容即可。', + aiCreatePart: 'AI续写' + }, + note: { + title: '备注' + }, + nodeLink: { + linkToNode: '链接到指定节点', + addReturn: '添加反向链接', + tip1: '请选择要链接到的节点', + tip2: '不能链接自己', + tip3: '链接成功', + tip4: '删除成功', + tip5: '链接节点不存在,是否删除该链接?' + }, + ciod: { + outputConfig: '导出配置', + importConfig: '导入配置', + tip1: '请选择json文件', + tip2: '文件内容格式不正确', + tip3: '导入成功', + tip4: '导入失败' + }, + imageUpload: { + tip: '点击此处选择图片、或拖动图片到此', + failTip: '图片保存失败' + }, + fileSelectList: { + searchPlaceholder: '搜索文件名' + }, + guide: { + btn: '关闭引导', + tip1: '要更新![[]]嵌入到其他文档中的预览图像需要手动点击保存', + tip2: '激活节点后,可在这里修改节点内容(图片、图标...)', + tip3: '这里可以修改节点样式、切换主题/结构等等', + tip4: '这里可以查看快捷键信息', + tip5: '这里有一些辅助功能(小地图、演示模式...)' + }, + previewMode: { + emptyTitle: '未解析到可渲染数据', + emptyDesc: '目前仅能解析部分 markdown 语法,比如标题、列表', + close: '关闭' + } +} diff --git a/plugin/src/lang/zh_tw.js b/plugin/src/lang/zh_tw.js new file mode 100644 index 0000000..8e4b4ad --- /dev/null +++ b/plugin/src/lang/zh_tw.js @@ -0,0 +1,611 @@ +export default { + baseStyle: { + title: '基本樣式', + background: '背景', + color: '顏色', + image: '圖片', + imageRepeat: '圖片重複', + imagePosition: '圖片位置', + imageSize: '圖片大小', + line: '連線', + width: '寬度', + style: '樣式', + lineRadius: '圓角半徑', + lineOfOutline: '概要連線', + showArrow: '顯示箭頭', + nodePadding: '節點內距', + nodeMargin: '節點外距', + horizontal: '水平', + vertical: '垂直', + maximumWidth: '最大寬度', + maximumHeight: '最大高度', + icon: '圖示', + size: '大小', + level2Node: '第二層節點', + belowLevel2Node: '第三層及以下節點', + nodeBorderType: '節點邊框樣式', + nodeUseLineStyle: '僅使用底邊框樣式', + otherConfig: '其他設定', + associativeLine: '關聯線', + associativeLineWidth: '寬度', + associativeLineColor: '顏色', + associativeLineActiveWidth: '啟用時寬度', + associativeLineActiveColor: '啟用時顏色', + rootStyle: '根節點', + associativeLineText: '關聯線文字', + fontFamily: '字型', + fontSize: '字型大小', + rootLineStartPos: '根節點連線起始位置', + center: '中心', + edge: '邊緣', + rainbowLines: '彩虹線條', + notUseRainbowLines: '不使用彩虹線條', + outerFramePadding: '外框內距', + associativeLineStyle: '關聯線樣式', + builtInBackgroundImage: '內置背景圖片', + baseStyleConfig: '思緒心智圖基礎樣式配寘' + }, + setting: { + title: '設置', + openPerformance: '啟用效能模式', + enableFreeDrag: '啟用節點自由拖曳 (Beta)', + isEnableNodeRichText: '啟用節點豐富文字編輯', + mousewheelAction: '滑鼠滾輪行為', + zoomView: '縮放檢視', + moveViewUpDown: '上下移動檢視', + mousewheelZoomActionReverse: '滑鼠滾輪縮放', + mousewheelZoomActionReverse1: '向前縮小,向後放大', + mousewheelZoomActionReverse2: '向前放大,向後縮小', + createNewNodeBehavior: '建立新節點行為', + default: '啟用新節點並進入編輯', + notActive: '不啟用新節點', + activeOnly: '僅啟用新節點,不進入編輯', + openRealtimeRenderOnNodeTextEdit: '開啟文本編輯實時渲染效果', + isShowScrollbar: '顯示捲軸', + isUseHandDrawnLikeStyle: '使用手繪風格', + isUseMomentum: '是否開啓拖動畫布的動量效果', + isUseSameNodeAlign: '是否使用相同節點對齊', + openBlankMode: '是否開啓演示模式的填空功能', + watermark: '浮水印', + showWatermark: '顯示浮水印', + onlyExport: '僅在匯出時顯示', + watermarkDefaultText: '浮水印文字', + watermarkText: '浮水印文字', + watermarkTextColor: '文字顏色', + watermarkLineSpacing: '行距', + watermarkTextSpacing: '文字間距', + watermarkAngle: '旋轉角度', + watermarkTextOpacity: '文字透明度', + watermarkTextFontSize: '字型大小', + belowNode: '顯示在節點下方', + confirm: '確定', + cancel: '取消', + changeRichTextTip: + '該操作會清空所有曆史修改記錄,並且修改思維導圖數據,是否繼續?', + changeRichTextTip2: '是否切換爲富文本模式?', + changeRichTextTip3: '是否切換爲非富文本模式?', + enableDragImport: '是否允許直接拖拽文件到頁面進行導入', + imgTextMargin: '節點圖片和文本間隔', + textContentMargin: '節點各種內容間隔', + enableAutoEnterTextEditWhenKeydown: '鍵盤輸入時自動進入文本編輯', + enableInheritAncestorLineStyle: '節點連線樣式繼承祖先節點的樣式', + alwaysShowExpandBtn: '是否壹直顯示展開收起按鈕', + enableAi: '是否開啓AI功能', + rootEnableUnExpand: '根節點是否允許收起下級', + settingConfig: '思緒心智圖設定', + title1: '節點', + title2: '編輯', + title3: '顯示', + title4: '其他' + }, + color: { + moreColor: '更多顏色' + }, + contextmenu: { + insertSiblingNode: '插入同層節點', + insertChildNode: '插入子節點', + insertParentNode: '插入父節點', + insertSummary: '插入概要', + moveUpNode: '上移節點', + moveDownNode: '下移節點', + deleteNode: '刪除節點', + deleteCurrentNode: '僅刪除目前節點', + copyNode: '複製節點', + cutNode: '剪下節點', + pasteNode: '貼上節點', + backCenter: '回到根節點', + expandAll: '展開全部', + unExpandAll: '收合全部', + expandTo: '展開至', + arrangeLayout: '一鍵整理版面', + level1: '第一層主題', + level2: '第二層主題', + level3: '第三層主題', + level4: '第四層主題', + level5: '第五層主題', + level6: '第六層主題', + zenMode: '禪模式', + fitCanvas: '適應畫布', + removeImage: '移除圖片', + removeHyperlink: '移除超連結', + removeNote: '移除備註', + removeCustomStyles: '一鍵移除自訂樣式', + removeAllNodeCustomStyles: '一鍵移除所有節點自訂樣式', + exportNodeToPng: '匯出此節點為圖片', + copyToClipboard: '複製到剪貼簿', + copyToSmm: 'SMM', + copyToJson: 'JSON', + copyToMarkdown: 'Markdown', + copyToTxt: 'Txt', + copyToPng: '圖片', + copySuccess: '複製成功', + copyFail: '複製失敗', + number: '將其子節點編號', + expandNodeChild: '展開所有下級節點', + unExpandNodeChild: '收起所有下級節點', + addToDo: '添加待辦', + removeToDo: '刪除待辦', + aiCreate: 'AI續寫', + modifyNodeLink: '修改節點鏈接', + linkToNode: '鏈接到指定節點', + removeNodeLink: '刪除節點鏈接', + nodeAlgin: '一鍵同級節點對齊', + removeCustomWidth: '去除自定義寬度', + copyAsInternalUrl: '複製為內鏈', + removeAllCustomWidth: '一鍵去除所有節點自定義寬度' + }, + count: { + words: '字數', + nodes: '節點數' + }, + dialog: { + cancel: '取消', + confirm: '確定' + }, + export: { + title: '匯出', + filename: '檔案名稱', + include: '包含主題、結構等設定資料', + dedicatedFile: '專用檔案', + jsonFile: 'JSON 檔案', + imageFile: '圖片檔案', + svgFile: 'SVG 檔案', + pdfFile: 'PDF 檔案', + markdownFile: 'Markdown 檔案', + isTransparent: '背景透明', + transformingDomToImages: '正在轉換節點:', + notifyTitle: '訊息', + notifyMessage: '如果沒有觸發下載,請檢查是否被瀏覽器封鎖', + paddingX: '水平內距', + paddingY: '垂直內距', + useMultiPageExport: '多頁匯出', + defaultFileName: '心智圖', + addFooterText: '在底部新增文字', + addFooterTextPlaceholder: '例如:來自 simple-mind-map', + desc: '說明', + options: '選項', + isFitBg: '是否顯示完整背景圖片(使用了背景圖片時生效)', + format: '格式', + confirm: '匯出' + }, + fullscreen: { + fullscreenShow: '全螢幕檢視', + fullscreenEdit: '全螢幕編輯' + }, + demonstrate: { + demonstrate: '進入展示模式' + }, + import: { + title: '匯入', + selectFile: '選擇檔案', + support: '支援', + file: '檔案', + pleaseSelect: '請選擇', + maxFileNum: '最多只能選擇一個檔案', + notSelectTip: '請選擇要匯入的檔案', + fileContentError: '檔案內容有誤', + importSuccess: '匯入成功', + fileParsingFailed: '檔案解析失敗', + xmindCanvasSelectDialogTitle: '選擇要匯入的畫布', + mdImportDialogTitle: '粘貼Markdown內容導入', + mdPlaceholder: '請輸入Markdown格式的內容', + mdEmptyTip: '內容不能爲空' + }, + navigatorToolbar: { + openMiniMap: '開啟小地圖', + closeMiniMap: '關閉小地圖', + readonly: '切換為唯讀模式', + edit: '切換為編輯模式', + backToRoot: '回到根節點', + changeSourceCodeEdit: '切換為原始碼編輯模式', + shortcutKeys: '快捷鍵', + ai: 'AI對話', + downloadClient: '下載客戶端', + site: '官方網站', + current: '當前:', + downloadDesc: '可從如下地址下載:', + searchReplace: '蒐索替換', + exitDarkMode: '退出暗黑模式', + darkMode: '切换为暗黑模式', + darkModeFailTip: '切換失敗,當前為跟隨obsidian模式', + export: '匯出' + }, + nodeHyperlink: { + title: '超連結', + link: '連結', + name: '名稱', + tabName1: '普通網址', + tabName2: 'Obsidian檔案', + tabName3: '本地檔案', + selectLocalFile: '選擇本地檔案', + none: '無', + delete: '删除', + add: '添加', + tip1: '請輸入連結位址', + tip2: '插入失敗,檔案不存在', + tip3: '請選擇本地檔案', + tip4: '文件上傳到Vault中失敗' + }, + nodeIcon: { + title: '圖示' + }, + nodeImage: { + title: '圖片', + imgTitle: '圖片標題', + tip: + 'tips:如果你是要粘貼圖片,那麼不需要打開該彈窗,直接啟動節點後按Ctrl+v粘貼即可。', + method1: '管道一', + method2: '管道二', + tip2: '請輸入圖片地址', + optional: '可選', + selectLocal: '從本地選擇', + selectVault: '從Vault選擇', + selectUrl: '網絡圖片', + imgTitle: '圖片標題(可選)' + }, + nodeNote: { + title: '備註' + }, + nodeTag: { + title: '標籤', + addTip: '請按回車鍵添加,最多可添加五個標籤' + }, + outline: { + title: '大綱', + nodeDefaultText: '分支節點', + print: '打印', + fullscreen: '全屏', + tip1: '插入兄弟節點:', + tip2: '插入子節點:', + tip3: '節點上移層級:', + tip4: '删除節點:', + tip5: '按住節點可拖拽' + }, + scale: { + zoomIn: '放大', + zoomOut: '縮小' + }, + shortcutKey: { + title: '快速鍵' + }, + strusture: { + title: '結構' + }, + style: { + title: '節點樣式', + normal: '常態', + active: '選取狀態', + text: '文字', + fontFamily: '字型', + fontSize: '字型大小', + color: '顏色', + addFontWeight: '粗體', + italic: '斜體', + textDecoration: '文字裝飾', + none: '無', + underline: '底線', + lineThrough: '刪除線', + overline: '上劃線', + border: '邊框', + style: '樣式', + width: '寬度', + borderRadius: '圓角', + background: '背景', + shape: '形狀', + line: '線條', + nodePadding: '節點內距', + horizontal: '水平', + vertical: '垂直', + gradientStyle: '漸層', + startColor: '起始', + endColor: '結束', + arrowDir: '箭頭位置', + arrowDirStart: '頭部', + arrowDirEnd: '尾部', + selectNodeTip: '請選擇壹個節點', + openLineFlow: '開啓流動效果', + lineFlowDuration: '一個流動周期的時間', + forward: '正向', + reverse: '反向', + img: '圖片', + placement: '布局', + top: '上', + bottom: '下', + left: '左', + right: '右', + tag: '標簽', + direction: '方向' + }, + theme: { + title: '主題', + classics: '經典', + dark: '深色', + simple: '簡約', + coverTip: '您目前已自訂過基本樣式,是否要覆蓋?', + tip: '提示', + cover: '覆蓋', + reserve: '保留' + }, + toolbar: { + undo: '復原', + redo: '重做', + insertSiblingNode: '同層節點', + insertChildNode: '子節點', + deleteNode: '刪除節點', + image: '圖片', + icon: '圖示', + link: '超連結', + note: '備註', + tag: '標籤', + summary: '摘要', + displayOutline: '顯示大綱', + baseStyle: '基本樣式', + theme: '主題', + strusture: '結構', + newFile: '新增檔案', + openFile: '開啟檔案', + saveAs: '另存新檔', + import: '匯入', + export: '匯出', + shortcutKey: '快速鍵', + associativeLine: '關聯線', + painter: '格式刷', + formula: '公式', + attachment: '附件', + outerFrame: '外框', + more: '更多', + selectFileTip: '請選擇檔案', + notSupportTip: '您的瀏覽器不支援此功能,或者目前頁面非 HTTPS 協定', + tip: '提示', + editingLocalFileTipFront: '目前正在編輯您電腦上的【', + editingLocalFileTipEnd: '】檔案', + fileContentError: '檔案內容有誤', + fileOpenFailed: '檔案開啟失敗', + defaultFileName: '心智圖', + creatingTip: '正在建立檔案', + directory: '目錄', + newFileTip: '新增檔案前,請先匯出目前編輯的檔案,以免內容遺失', + openFileTip: '開啟檔案前,請先匯出目前編輯的檔案,以免內容遺失', + ai: 'AI' + }, + edit: { + newFeatureNoticeTitle: '新功能提醒', + newFeatureNoticeMessage: + '本次更新支援了節點豐富文字編輯,但存在一些缺陷,最主要的影響是匯出為圖片的時間與節點數量成正比,所以如果比較依賴匯出功能,可以透過【基本樣式】-【其他設定】-【是否啟用節點豐富文字編輯】設定關閉豐富文字編輯模式。', + root: '根節點', + splitByWrap: '是否根據換行自動分割節點?', + tip: '提示', + yes: '是', + no: '否', + exportError: '匯出失敗', + dragTip: '在此釋放以匯入檔案', + autoOpenNodeRichTextTip: '檢測到導入了富文本內容,已自動開啓富文本模式', + localStorageExceededTip: + '你創建的思維導圖體積已經超過浏覽器允許存儲的上限,請立即導出,否則數據將丟失!建議下載客戶端進行使用,客戶端無大小限制。', + withBg: '帶背景', + tryTipTitle: '功能試用提示', + tryTipDesc: '該功能在網頁版中為試用功能,請下載用戶端使用:', + downBaidu: '去百度網盤下載', + downGithub: '去Github下載', + painterTip: '點擊畫布空白處取消或結束', + createAssociativeLineTip: '點擊畫布空白處取消', + savingTip: '正在保存中,請稍後再試', + savingTip2: '心智圖為空,或正在渲染中,請稍後再試', + savingTip3: '保存成功', + savingTip4: '保存失敗', + defaultInsertSecondLevelNodeText: '二級節點', + defaultInsertBelowSecondLevelNodeText: '分支主題', + defaultGeneralizationText: '概要', + defaultAssociativeLineText: '關聯', + defaultOuterFrameText: '外框', + pasteImage: '粘貼圖片' + }, + mouseAction: { + tip1: '目前:左鍵拖曳畫布,右鍵框選節點。點擊可切換', + tip2: '目前:左鍵框選節點,右鍵拖曳畫布。點擊可切換' + }, + search: { + searchPlaceholder: '輸入查找內容後按回車鍵', + replacePlaceholder: '請輸入取代內容', + replace: '取代', + replaceAll: '全部取代', + cancel: '取消', + noResult: '查無結果' + }, + nodeIconSidebar: { + title: '圖示/貼圖', + icon: '圖示', + sticker: '貼圖' + }, + formulaSidebar: { + title: '公式', + placeholder: '請輸入 LaTeX 語法', + confirm: '完成', + common: '常用公式', + tip: '僅在豐富文字模式下支援插入公式' + }, + richTextToolbar: { + bold: '粗體', + italic: '斜體', + underline: '底線', + strike: '刪除線', + fontFamily: '字型', + fontSize: '字型大小', + color: '字型顏色', + backgroundColor: '背景顏色', + removeFormat: '清除樣式', + textAlign: '對齊方式' + }, + other: { + loading: '載入中,請稍候...' + }, + sourceCodeEdit: { + sourceCodeTip: + '不建議在豐富文字模式下修改樣式,因為需要同步修改資料和 HTML 結構。', + format: '格式化', + copy: '複製', + confirm: '完成', + close: '關閉', + formatErrorTip: 'JSON 格式錯誤,請檢查後重試', + copyTip: '已複製到剪貼簿', + formatTip: '格式化完成' + }, + attachment: { + deleteAttachment: '刪除附件', + tip: '附件功能僅在用戶端可用' + }, + annotation: { + mark: '標記', + show: '顯示標記', + type: '類型', + color: '顏色', + lineWidth: '線寬', + padding: '內距', + animate: '動畫' + }, + nodeOuterFrame: { + outerFrameSetting: '外框', + deleteOuterFrame: '刪除外框', + boxStyle: '邊框樣式', + boxColor: '邊框顏色', + fillColor: '填充顏色', + nodeOuterFrameStyle: '外框樣式', + outerFrameText: '外框文字', + deleteOuterFrameText: '刪除文字', + fontFamily: '字型', + color: '顏色', + fontSize: '字型大小', + radius: '圓角', + fontBold: '加粗', + italic: '斜體', + lineHeight: '行高', + textFillRadius: '背景圓角', + textFill: '背景填充', + textAlign: '顯示位置', + left: '左', + center: '中', + right: '右', + paddingX: '水平內邊距', + paddingY: '垂直內邊距', + constainsChildren: '外框是否包含子節點' + }, + nodeTagStyle: { + placeholder: '請輸入標籤內容', + delete: '刪除此標籤' + }, + ai: { + chatTitle: 'AI對話', + clearRecords: '清空記錄', + connectFailedTitle: '客戶端連接失敗提示', + connectFailedTip: '客戶端連接失敗,請檢查:', + connectFailedCheckTip1: + '1.是否安裝了思緒思維導圖客戶端,如果沒有請點此安裝:', + connectFailedCheckTip2: '2.如果安裝了客戶端,請確認是否打開了客戶端。', + connectFailedCheckTip3: + '3.如果已經安裝並啓動了,那麽可以嘗試關閉然後重新啓動。', + connectFailedCheckTip4: '完成以上步驟後可點擊:', + baiduNetdisk: '百度網盤', + createMindMapTitle: '一鍵生成思維導圖', + createTip: + '請輸入一個主題,AI會根據你的主題生成思維導圖,如:杭州周末出遊計劃。', + importantTip: '重要提示:一鍵生成會覆蓋現有數據,建議先導出當前數據。', + wantModifyAiConfigTip: '想要修改AI配置?請點擊:', + modifyAIConfiguration: '修改AI配置', + chatInputPlaceholder: 'Enter 發送,Shift Enter 換行。', + send: '發送', + stopGenerating: '停止生成', + generationFailed: '生成失敗', + aiGenerationSuccess: 'AI生成完成', + stoppedGenerating: '已停止生成', + AIConfiguration: 'AI配置', + VolcanoArkLargeModelConfiguration: '火山方舟大模型配置:', + configTip: '目前僅支持火山方舟大模型,需要自行去獲取key,詳細操作步驟見:', + course: '教程', + inferenceAccessPoint: '推理接入點', + mindMappingClientConfiguration: '思緒思維導圖客戶端配置:', + port: '端口', + cancel: '取消', + confirm: '確認', + close: '關閉', + configSaveSuccessTip: '配置保存成功', + apiValidateTip: '請輸入接口', + keyValidateTip: '請輸入API Key', + modelValidateTip: '請輸入推理接入點', + portValidateTip: '請輸入端口', + methodValidateTip: '請選擇請求方式', + noInputTip: '請輸入內容', + connectSuccessful: '連接成功', + connectFailed: '連接失敗', + connectionDetection: '連接檢測', + configurationMissing: '配置缺失', + aiCreateMsgPrefix: '幫我寫一個【', + aiCreateMsgPostfix: + '】,需要以Markdown格式返回,並且只能使用Markdown的標題和無序列表兩種語法,可以支持多層嵌套。只需返回內容即可。', + aiCreatePartMsgPrefix: '我有一個主題爲【', + aiCreatePartMsgCenter: '】的思維導圖,幫我續寫其中一個內容爲【', + aiCreatePartMsgPostfix: '】的節點的下級內容', + aiCreatePartMsgHelp: + '。需要以Markdown格式返回,並且只能使用Markdown的標題和無序列表兩種語法,可以支持多層嵌套。只需返回內容即可。', + aiCreatePart: 'AI續寫' + }, + note: { + title: '備註' + }, + nodeLink: { + linkToNode: '鏈接到指定節點', + addReturn: '是否添加反向鏈接', + tip1: '請選擇要鏈接到的節點', + tip2: '不能鏈接自己', + tip3: '鏈接成功', + tip4: '刪除成功', + tip5: '鏈接節點不存在,是否刪除該鏈接?' + }, + ciod: { + outputConfig: '匯出配寘', + importConfig: '導入配寘', + tip1: '請選擇json檔案', + tip2: '檔案內容格式不正確', + tip3: '導入成功', + tip4: '導入失敗' + }, + imageUpload: { + tip: '點擊此處選擇圖片、或拖動圖片到此', + failTip: '圖片上傳失敗' + }, + fileSelectList: { + searchPlaceholder: '蒐索檔名' + }, + guide: { + btn: '關閉導航', + tip1: '在其他文件中嵌入![[]]圖片時,需要手動點擊保存', + tip2: '在啟用節點後,可以在這裡修改節點內容(圖片、圖標...)', + tip3: '這裡可以修改節點樣式、切換主題/結構等等', + tip4: '這裡可以查看快捷鍵信息', + tip5: '這裡有一些輔助功能(小圖映射、演示模式...)' + }, + previewMode: { + emptyTitle: '未解析到可渲染數據', + emptyDesc: '現時僅能解析部分markdown語法,比如標題、清單', + close: '關閉' + } +} diff --git a/plugin/src/main.js b/plugin/src/main.js new file mode 100644 index 0000000..05f37ac --- /dev/null +++ b/plugin/src/main.js @@ -0,0 +1,112 @@ +import Vue from 'vue' +import App from './pages/Edit/Index.vue' +import createStore from './store' +import './style/element-variables.scss' +import '@/assets/icon-font/iconfont.css' +import 'viewerjs/dist/viewer.css' +import VueViewer from 'v-viewer' +import i18n from './i18n' +import '@/style/common.less' +import '@/style/sidebar.less' +import '@toast-ui/editor/dist/toastui-editor.css' +import '@toast-ui/editor/dist/theme/toastui-editor-dark.css' +import PreviewMode from './pages/PreviewMode/Index.vue' +import { + Dialog, + Dropdown, + DropdownMenu, + DropdownItem, + Input, + Popover, + Select, + Option, + Tabs, + TabPane, + Checkbox, + Slider, + ColorPicker, + Radio, + RadioGroup, + Button, + Upload, + RadioButton, + Tree, + InputNumber, + MessageBox, + Loading +} from 'element-ui' + +Vue.config.productionTip = false +Vue.use(VueViewer) +Vue.use(Dialog) +Vue.use(Button) +Vue.use(Input) +Vue.use(Select) +Vue.use(Option) +Vue.use(Tabs) +Vue.use(TabPane) +Vue.use(Checkbox) +Vue.use(Slider) +Vue.use(ColorPicker) +Vue.use(Radio) +Vue.use(RadioGroup) +Vue.use(Upload) +Vue.use(RadioButton) +Vue.use(Tree) +Vue.use(InputNumber) +Vue.use(Popover) +Vue.use(Dropdown) +Vue.use(DropdownMenu) +Vue.use(DropdownItem) +Vue.use(Loading.directive) +Vue.prototype.$loading = Loading.service +Vue.prototype.$confirm = MessageBox.confirm + +// 初始化独立窗口编辑应用 +export const initApp = (el, obsidianAPI = {}) => { + i18n.locale = obsidianAPI.getSettings().lang || 'en' + const app = new Vue({ + render: h => h(App), + store: createStore(), + i18n + }) + const bus = new Vue() + // 注册全局事件总线 + app.$bus = bus + // 派发更新思维导图尺寸事件 + let resizeTimer = null + app.$updateMindMapSize = () => { + clearTimeout(resizeTimer) + resizeTimer = setTimeout(() => { + app.$bus.$emit('windowResize') + }, 300) + } + app.$clearUpdateMindMapSize = () => { + clearTimeout(resizeTimer) + resizeTimer = null + } + // 挂载一些API + app.$obsidianAPI = obsidianAPI + app.$mount(el) + return app +} + +const initCommonApp = (el, obsidianAPI = {}, component) => { + i18n.locale = obsidianAPI.getSettings().lang || 'en' + const app = new Vue({ + render: h => h(component), + store: createStore(), + i18n + }) + const bus = new Vue() + // 注册全局事件总线 + app.$bus = bus + // 挂载一些API + app.$obsidianAPI = obsidianAPI + app.$mount(el) + return app +} + +export const initPreviewModeApp = (el, obsidianAPI = {}) => { + return initCommonApp(el, obsidianAPI, PreviewMode) +} diff --git a/plugin/src/mixins/dark.js b/plugin/src/mixins/dark.js new file mode 100644 index 0000000..17d3a1d --- /dev/null +++ b/plugin/src/mixins/dark.js @@ -0,0 +1,33 @@ +import { mapState, mapMutations } from 'vuex' + +export default { + computed: { + ...mapState({ + isDark: state => state.localConfig.isDark + }) + }, + watch: { + isDark() { + this.setBodyDark() + } + }, + created() { + this.setBodyDark() + }, + methods: { + ...mapMutations(['setLocalConfig']), + + setBodyDark() { + this.isDark + ? document.body.classList.add('isDark') + : document.body.classList.remove('isDark') + }, + + setIsDark(isDark) { + this.setLocalConfig({ + isDark + }) + this.setBodyDark() + } + } +} diff --git a/plugin/src/pages/.DS_Store b/plugin/src/pages/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7e53fdf06dee283774099bbf7eeb7671e189a744 GIT binary patch literal 6148 zcmeHK%}T>S5Z-O0ZYV+z3VK`cTCk}VUfcJr)AaR6kcF3E9fT5u0wc044yfk zfU3-~1t0DX&vLGXakkAS9u3^DMl47>xUolhSC literal 0 HcmV?d00001 diff --git a/plugin/src/pages/Edit/.DS_Store b/plugin/src/pages/Edit/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e3de4cec68b278224c72501802d03f34f29c4f01 GIT binary patch literal 6148 zcmeHK%}&BV5S~TUR${_I6TNNXl|;awXuLG2FJO%x)F7p(jipOykpm&=U0=u-@p+ut zT}TXgGe*ozGV=|yGh5~>*<}DgGzMV}pbP*GDq+DzGe>BhbVdp`vVc_ZJM)UJ$DQ*WZI)9Hm*c`XLHS#pRV%$8k!|o&ThUe%8tc zX`|J@p--1e#lggH1y@mL*eq|Hsw8VgNvE$1qOgN0x7Se;s$oM7k}%b^zFBZw*KL-! zN2A)oVMW&Jd*g~6)#}xwiaa{rACFyUb7%MDqWK(m6ZL8s75L-RvTkt#Z|KZz?jcOu z0e)F3oSX3C_mfy9kGMYBe6lGcGr$Zm1B=gqJ=vVn;LgLgG43tEanFF z(Sb&f0Ek5lYeAo8396A6J&UA literal 0 HcmV?d00001 diff --git a/plugin/src/pages/Edit/Index.vue b/plugin/src/pages/Edit/Index.vue new file mode 100644 index 0000000..cf608f7 --- /dev/null +++ b/plugin/src/pages/Edit/Index.vue @@ -0,0 +1,500 @@ + + + + + + diff --git a/plugin/src/pages/Edit/components/AssociativeLineStyle.vue b/plugin/src/pages/Edit/components/AssociativeLineStyle.vue new file mode 100644 index 0000000..311c9a8 --- /dev/null +++ b/plugin/src/pages/Edit/components/AssociativeLineStyle.vue @@ -0,0 +1,343 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/BaseStyle.vue b/plugin/src/pages/Edit/components/BaseStyle.vue new file mode 100644 index 0000000..bdecebc --- /dev/null +++ b/plugin/src/pages/Edit/components/BaseStyle.vue @@ -0,0 +1,1274 @@ + + + + + + diff --git a/plugin/src/pages/Edit/components/Color.vue b/plugin/src/pages/Edit/components/Color.vue new file mode 100644 index 0000000..7573bec --- /dev/null +++ b/plugin/src/pages/Edit/components/Color.vue @@ -0,0 +1,116 @@ + + + + + + \ No newline at end of file diff --git a/plugin/src/pages/Edit/components/ConfigImportOutputDropdown.vue b/plugin/src/pages/Edit/components/ConfigImportOutputDropdown.vue new file mode 100644 index 0000000..f93a992 --- /dev/null +++ b/plugin/src/pages/Edit/components/ConfigImportOutputDropdown.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Contextmenu.vue b/plugin/src/pages/Edit/components/Contextmenu.vue new file mode 100644 index 0000000..7b8f2db --- /dev/null +++ b/plugin/src/pages/Edit/components/Contextmenu.vue @@ -0,0 +1,640 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Count.vue b/plugin/src/pages/Edit/components/Count.vue new file mode 100644 index 0000000..708173b --- /dev/null +++ b/plugin/src/pages/Edit/components/Count.vue @@ -0,0 +1,116 @@ + + + + + + diff --git a/plugin/src/pages/Edit/components/Demonstrate.vue b/plugin/src/pages/Edit/components/Demonstrate.vue new file mode 100644 index 0000000..8581d4c --- /dev/null +++ b/plugin/src/pages/Edit/components/Demonstrate.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Edit.vue b/plugin/src/pages/Edit/components/Edit.vue new file mode 100644 index 0000000..5d6c4ba --- /dev/null +++ b/plugin/src/pages/Edit/components/Edit.vue @@ -0,0 +1,834 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Export.vue b/plugin/src/pages/Edit/components/Export.vue new file mode 100644 index 0000000..6ebf6f0 --- /dev/null +++ b/plugin/src/pages/Edit/components/Export.vue @@ -0,0 +1,729 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/FormulaSidebar.vue b/plugin/src/pages/Edit/components/FormulaSidebar.vue new file mode 100644 index 0000000..a4cf530 --- /dev/null +++ b/plugin/src/pages/Edit/components/FormulaSidebar.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Guide.vue b/plugin/src/pages/Edit/components/Guide.vue new file mode 100644 index 0000000..52ed10f --- /dev/null +++ b/plugin/src/pages/Edit/components/Guide.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Import.vue b/plugin/src/pages/Edit/components/Import.vue new file mode 100644 index 0000000..217b8af --- /dev/null +++ b/plugin/src/pages/Edit/components/Import.vue @@ -0,0 +1,315 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/MouseAction.vue b/plugin/src/pages/Edit/components/MouseAction.vue new file mode 100644 index 0000000..07188c3 --- /dev/null +++ b/plugin/src/pages/Edit/components/MouseAction.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Navigator.vue b/plugin/src/pages/Edit/components/Navigator.vue new file mode 100644 index 0000000..6629221 --- /dev/null +++ b/plugin/src/pages/Edit/components/Navigator.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NavigatorToolbar.vue b/plugin/src/pages/Edit/components/NavigatorToolbar.vue new file mode 100644 index 0000000..a21318f --- /dev/null +++ b/plugin/src/pages/Edit/components/NavigatorToolbar.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeHyperlink.vue b/plugin/src/pages/Edit/components/NodeHyperlink.vue new file mode 100644 index 0000000..8f9e56b --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeHyperlink.vue @@ -0,0 +1,405 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeIcon.vue b/plugin/src/pages/Edit/components/NodeIcon.vue new file mode 100644 index 0000000..c48640a --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeIcon.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeIconSidebar.vue b/plugin/src/pages/Edit/components/NodeIconSidebar.vue new file mode 100644 index 0000000..5313696 --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeIconSidebar.vue @@ -0,0 +1,354 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeIconToolbar.vue b/plugin/src/pages/Edit/components/NodeIconToolbar.vue new file mode 100644 index 0000000..addc0ae --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeIconToolbar.vue @@ -0,0 +1,267 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeImage.vue b/plugin/src/pages/Edit/components/NodeImage.vue new file mode 100644 index 0000000..d97fab1 --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeImage.vue @@ -0,0 +1,317 @@ + + + + + + diff --git a/plugin/src/pages/Edit/components/NodeImgPlacementToolbar.vue b/plugin/src/pages/Edit/components/NodeImgPlacementToolbar.vue new file mode 100644 index 0000000..8e30b09 --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeImgPlacementToolbar.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeImgPreview.vue b/plugin/src/pages/Edit/components/NodeImgPreview.vue new file mode 100644 index 0000000..ef4a3f9 --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeImgPreview.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeNote.vue b/plugin/src/pages/Edit/components/NodeNote.vue new file mode 100644 index 0000000..7df9217 --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeNote.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeNoteContentShow.vue b/plugin/src/pages/Edit/components/NodeNoteContentShow.vue new file mode 100644 index 0000000..81f089d --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeNoteContentShow.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeNoteSidebar.vue b/plugin/src/pages/Edit/components/NodeNoteSidebar.vue new file mode 100644 index 0000000..08cb41e --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeNoteSidebar.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeOuterFrame.vue b/plugin/src/pages/Edit/components/NodeOuterFrame.vue new file mode 100644 index 0000000..78b723f --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeOuterFrame.vue @@ -0,0 +1,584 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeTag.vue b/plugin/src/pages/Edit/components/NodeTag.vue new file mode 100644 index 0000000..05821aa --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeTag.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/NodeTagStyle.vue b/plugin/src/pages/Edit/components/NodeTagStyle.vue new file mode 100644 index 0000000..07a8bce --- /dev/null +++ b/plugin/src/pages/Edit/components/NodeTagStyle.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Outline.vue b/plugin/src/pages/Edit/components/Outline.vue new file mode 100644 index 0000000..d586ddf --- /dev/null +++ b/plugin/src/pages/Edit/components/Outline.vue @@ -0,0 +1,344 @@ + + + + + + diff --git a/plugin/src/pages/Edit/components/OutlineEdit.vue b/plugin/src/pages/Edit/components/OutlineEdit.vue new file mode 100644 index 0000000..12e8d4f --- /dev/null +++ b/plugin/src/pages/Edit/components/OutlineEdit.vue @@ -0,0 +1,425 @@ + + + + + + diff --git a/plugin/src/pages/Edit/components/OutlineSidebar.vue b/plugin/src/pages/Edit/components/OutlineSidebar.vue new file mode 100644 index 0000000..74f0513 --- /dev/null +++ b/plugin/src/pages/Edit/components/OutlineSidebar.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/RichTextToolbar.vue b/plugin/src/pages/Edit/components/RichTextToolbar.vue new file mode 100644 index 0000000..3d1b54c --- /dev/null +++ b/plugin/src/pages/Edit/components/RichTextToolbar.vue @@ -0,0 +1,394 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Scale.vue b/plugin/src/pages/Edit/components/Scale.vue new file mode 100644 index 0000000..c5214cc --- /dev/null +++ b/plugin/src/pages/Edit/components/Scale.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Scrollbar.vue b/plugin/src/pages/Edit/components/Scrollbar.vue new file mode 100644 index 0000000..66b1848 --- /dev/null +++ b/plugin/src/pages/Edit/components/Scrollbar.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Search.vue b/plugin/src/pages/Edit/components/Search.vue new file mode 100644 index 0000000..19e88ff --- /dev/null +++ b/plugin/src/pages/Edit/components/Search.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Setting.vue b/plugin/src/pages/Edit/components/Setting.vue new file mode 100644 index 0000000..716ee60 --- /dev/null +++ b/plugin/src/pages/Edit/components/Setting.vue @@ -0,0 +1,620 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/ShortcutKey.vue b/plugin/src/pages/Edit/components/ShortcutKey.vue new file mode 100644 index 0000000..2f6c006 --- /dev/null +++ b/plugin/src/pages/Edit/components/ShortcutKey.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Sidebar.vue b/plugin/src/pages/Edit/components/Sidebar.vue new file mode 100644 index 0000000..de7fc78 --- /dev/null +++ b/plugin/src/pages/Edit/components/Sidebar.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/SidebarTrigger.vue b/plugin/src/pages/Edit/components/SidebarTrigger.vue new file mode 100644 index 0000000..b63b0a9 --- /dev/null +++ b/plugin/src/pages/Edit/components/SidebarTrigger.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Structure.vue b/plugin/src/pages/Edit/components/Structure.vue new file mode 100644 index 0000000..019f6d5 --- /dev/null +++ b/plugin/src/pages/Edit/components/Structure.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Style.vue b/plugin/src/pages/Edit/components/Style.vue new file mode 100644 index 0000000..e5de7ae --- /dev/null +++ b/plugin/src/pages/Edit/components/Style.vue @@ -0,0 +1,832 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Theme.vue b/plugin/src/pages/Edit/components/Theme.vue new file mode 100644 index 0000000..90741dd --- /dev/null +++ b/plugin/src/pages/Edit/components/Theme.vue @@ -0,0 +1,273 @@ + + + + + diff --git a/plugin/src/pages/Edit/components/Toolbar.vue b/plugin/src/pages/Edit/components/Toolbar.vue new file mode 100644 index 0000000..062e406 --- /dev/null +++ b/plugin/src/pages/Edit/components/Toolbar.vue @@ -0,0 +1,274 @@ + + + + + + diff --git a/plugin/src/pages/Edit/components/ToolbarNodeBtnList.vue b/plugin/src/pages/Edit/components/ToolbarNodeBtnList.vue new file mode 100644 index 0000000..89746ca --- /dev/null +++ b/plugin/src/pages/Edit/components/ToolbarNodeBtnList.vue @@ -0,0 +1,364 @@ + + + + + diff --git a/plugin/src/pages/PreviewMode/Index.vue b/plugin/src/pages/PreviewMode/Index.vue new file mode 100644 index 0000000..8762ba7 --- /dev/null +++ b/plugin/src/pages/PreviewMode/Index.vue @@ -0,0 +1,329 @@ + + + + + + diff --git a/plugin/src/pages/PreviewMode/components/Toolbar.vue b/plugin/src/pages/PreviewMode/components/Toolbar.vue new file mode 100644 index 0000000..6d0b05e --- /dev/null +++ b/plugin/src/pages/PreviewMode/components/Toolbar.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/plugin/src/store.js b/plugin/src/store.js new file mode 100644 index 0000000..a524cf4 --- /dev/null +++ b/plugin/src/store.js @@ -0,0 +1,60 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex) + +const createStore = () => { + return new Vuex.Store({ + state: { + localConfig: { + // 本地配置 + isZenMode: false, // 是否是禅模式 + // 是否开启节点富文本 + openNodeRichText: true, + // 鼠标行为 + useLeftKeySelectionRightKeyDrag: false, + // 是否显示滚动条 + isShowScrollbar: false, + // 是否是暗黑模式 + isDark: false, + // 自动保存时间 + autoSaveTime: 5 + }, + activeSidebar: '', // 当前显示的侧边栏 + isOutlineEdit: false, // 是否是大纲编辑模式 + isReadonly: false, // 是否只读 + extraTextOnExport: '' // 导出时底部添加的文字 + }, + mutations: { + // 设置本地配置 + setLocalConfig(state, data) { + Object.keys(data).forEach(key => { + state.localConfig[key] = data[key] + }) + }, + + // 设置当前显示的侧边栏 + setActiveSidebar(state, data) { + state.activeSidebar = data + }, + + // 设置大纲编辑模式 + setIsOutlineEdit(state, data) { + state.isOutlineEdit = data + }, + + // 设置是否只读 + setIsReadonly(state, data) { + state.isReadonly = data + }, + + // 设置导出时底部添加的文字 + setExtraTextOnExport(state, data) { + state.extraTextOnExport = data + } + }, + actions: {} + }) +} + +export default createStore diff --git a/plugin/src/style/common.less b/plugin/src/style/common.less new file mode 100644 index 0000000..cc4cb3d --- /dev/null +++ b/plugin/src/style/common.less @@ -0,0 +1,11 @@ +.smmMindmapEditContainer { + input { + &:focus { + box-shadow: none; + } + + &:active { + box-shadow: none; + } + } +} \ No newline at end of file diff --git a/plugin/src/style/element-variables.scss b/plugin/src/style/element-variables.scss new file mode 100644 index 0000000..7abfe0d --- /dev/null +++ b/plugin/src/style/element-variables.scss @@ -0,0 +1,37 @@ +/* 改变主题色变量 */ +$--color-primary: #885bf3; + +// var(--color-accent) +// var(--text-accent) + +/* 改变 icon 字体路径变量,必需 */ +$--font-path: '~element-ui/lib/theme-chalk/fonts'; + +@import '~element-ui/packages/theme-chalk/src/base.scss'; +@import '~element-ui/packages/theme-chalk/src/dialog.scss'; +@import '~element-ui/packages/theme-chalk/src/dropdown.scss'; +@import '~element-ui/packages/theme-chalk/src/dropdown-menu.scss'; +@import '~element-ui/packages/theme-chalk/src/dropdown-item.scss'; +@import '~element-ui/packages/theme-chalk/src/input.scss'; +@import '~element-ui/packages/theme-chalk/src/input-number.scss'; +@import '~element-ui/packages/theme-chalk/src/radio.scss'; +@import '~element-ui/packages/theme-chalk/src/radio-group.scss'; +@import '~element-ui/packages/theme-chalk/src/radio-button.scss'; +@import '~element-ui/packages/theme-chalk/src/checkbox.scss'; +@import '~element-ui/packages/theme-chalk/src/checkbox-button.scss'; +@import '~element-ui/packages/theme-chalk/src/checkbox-group.scss'; +@import '~element-ui/packages/theme-chalk/src/select.scss'; +@import '~element-ui/packages/theme-chalk/src/button.scss'; +@import '~element-ui/packages/theme-chalk/src/button-group.scss'; +@import '~element-ui/packages/theme-chalk/src/popover.scss'; +@import '~element-ui/packages/theme-chalk/src/message-box.scss'; +@import '~element-ui/packages/theme-chalk/src/tabs.scss'; +@import '~element-ui/packages/theme-chalk/src/tab-pane.scss'; +@import '~element-ui/packages/theme-chalk/src/tree.scss'; +@import '~element-ui/packages/theme-chalk/src/slider.scss'; +@import '~element-ui/packages/theme-chalk/src/loading.scss'; +@import '~element-ui/packages/theme-chalk/src/upload.scss'; +@import '~element-ui/packages/theme-chalk/src/spinner.scss'; +@import '~element-ui/packages/theme-chalk/src/message.scss'; +@import '~element-ui/packages/theme-chalk/src/color-picker.scss'; +@import '~element-ui/packages/theme-chalk/src/link.scss'; diff --git a/plugin/src/style/outlineTree.less b/plugin/src/style/outlineTree.less new file mode 100644 index 0000000..9ae2347 --- /dev/null +++ b/plugin/src/style/outlineTree.less @@ -0,0 +1,62 @@ +.smmOutlineTree { + &.isDark { + background-color: #262a2e; + + .smmOutlineTreeCustomNode { + color: #fff; + } + + &.el-tree--highlight-current { + /deep/ .el-tree-node.is-current > .el-tree-node__content { + background-color: hsla(0, 0%, 100%, 0.05) !important; + } + } + + /deep/ .el-tree-node__content:hover, + .el-upload-list__item:hover { + background-color: hsla(0, 0%, 100%, 0.02) !important; + } + + /deep/ .el-tree-node__content { + .el-tree-node__expand-icon { + color: #fff; + + &.is-leaf { + &::after { + background-color: #fff; + } + } + } + } + } + + /deep/ .el-tree-node > .el-tree-node__children { + overflow: inherit; + } + + /deep/ .el-tree-node__content { + height: auto; + margin: 5px 0; + + .el-tree-node__expand-icon { + color: #262a2e; + + &.is-leaf { + color: transparent; + position: relative; + + &::after { + background-color: #262a2e; + position: absolute; + content: ''; + width: 5px; + height: 5px; + border-radius: 50%; + left: 10px; + top: 50%; + transform: translateY(-50%); + } + } + } + } +} diff --git a/plugin/src/style/sidebar.less b/plugin/src/style/sidebar.less new file mode 100644 index 0000000..0d90df1 --- /dev/null +++ b/plugin/src/style/sidebar.less @@ -0,0 +1,178 @@ +.smmBorderLine { + display: inline-block; + width: 100%; + background-color: #000; + + &.isDark { + background-color: #fff; + } +} + +.el-select-dropdown__item.selected { + .smmBorderLine { + background-color: var(--color-accent); + } +} + +.smmSidebarGroupTitle { + font-size: 16px; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: rgba(26, 26, 26, 0.9); + margin-bottom: 10px; + margin-top: 35px; + + &.noTop { + margin-top: 0; + } +} + +.smmCommonSidebarContent { + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + padding: 12px; + + &.isDark { + .row { + .rowItem { + .name { + color: hsla(0, 0%, 100%, 0.6); + } + } + } + + .smmSidebarGroupTitle { + color: #fff; + } + + .styleBtn { + background-color: #363b3f; + color: hsla(0, 0%, 100%, 0.6); + border-color: hsla(0, 0%, 100%, 0.1); + } + } + + .row { + display: flex; + justify-content: space-between; + margin-bottom: 10px; + overflow: hidden; + + &.noBottom { + margin-bottom: 0; + } + + &.column { + flex-direction: column; + } + + .rowItem { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + overflow: hidden; + + &.mr { + margin-right: 10px; + } + + &.mb { + margin-bottom: 10px; + } + + &.wrap { + flex-wrap: wrap; + } + + &.half { + width: 50%; + } + + &.pr5 { + padding-right: 5px; + } + + &.spaceBetween { + justify-content: space-between; + } + + .name { + font-size: 12px; + margin-right: 10px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-right: auto; + + &.mb { + margin-bottom: 10px; + } + } + + .block { + display: inline-block; + width: 30px; + height: 30px; + border: 1px solid #dcdfe6; + border-radius: 4px; + cursor: pointer; + + &.disabled { + background-color: #f5f7fa !important; + border-color: #e4e7ed !important; + color: #c0c4cc !important; + cursor: not-allowed !important; + } + } + } + } +} + +.smmFontStyleBtnList { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + + .styleBtn { + position: relative; + width: 60px; + height: 30px; + background: #fff; + border: 1px solid #eee; + display: flex; + justify-content: center; + align-items: center; + font-weight: bold; + cursor: pointer; + border-radius: 4px; + + &.actived { + background-color: #eee; + } + + &.disabled { + background-color: #f5f7fa !important; + border-color: #e4e7ed !important; + color: #c0c4cc !important; + cursor: not-allowed !important; + } + + &.i { + font-style: italic; + } + + &.u {} + + .colorShow { + position: absolute; + left: 0; + right: 0; + bottom: 0; + height: 2px; + } + } +} \ No newline at end of file diff --git a/plugin/src/utils/handleClipboardText.js b/plugin/src/utils/handleClipboardText.js new file mode 100644 index 0000000..cf03891 --- /dev/null +++ b/plugin/src/utils/handleClipboardText.js @@ -0,0 +1,92 @@ +import { imgToDataUrl } from 'simple-mind-map/src/utils/index' + +// 处理知犀 +const handleZHIXI = async data => { + try { + try { + if (!Array.isArray(data)) { + data = String(data).replace('￿', '') + data = JSON.parse(data) + } + } catch (error) { + console.log(error) + } + if (!Array.isArray(data)) { + data = [] + } + const newNodeList = [] + const waitLoadImageList = [] + const walk = (list, newList) => { + list.forEach(async item => { + let newRoot = {} + newList.push(newRoot) + newRoot.data = { + text: item.data.text, + hyperlink: item.data.hyperlink, + hyperlinkTitle: item.data.hyperlinkTitle, + note: item.data.note + } + // 图片 + if (item.data.image) { + let resolve = null + let promise = new Promise(_resolve => { + resolve = _resolve + }) + waitLoadImageList.push(promise) + try { + newRoot.data.image = await imgToDataUrl(item.data.image) + newRoot.data.imageSize = item.data.imageSize + resolve() + } catch (error) { + resolve() + } + } + // 子节点 + newRoot.children = [] + if (item.children && item.children.length > 0) { + const children = [] + item.children.forEach(item2 => { + // 概要 + if (item2.data.type === 'generalize') { + newRoot.data.generalization = [ + { + text: item2.data.text + } + ] + } else { + children.push(item2) + } + }) + walk(children, newRoot.children) + } + }) + } + walk(data, newNodeList) + await Promise.all(waitLoadImageList) + return { + simpleMindMap: true, + data: newNodeList + } + } catch (error) { + return '' + } +} + +const handleClipboardText = async text => { + // 知犀数据格式1 + try { + let parsedData = JSON.parse(text) + if (parsedData.__c_zx_v !== undefined) { + const res = await handleZHIXI(parsedData.children) + return res + } + } catch (error) {} + // 知犀数据格式2 + if (text.includes('￿')) { + const res = await handleZHIXI(text) + return res + } + return '' +} + +export default handleClipboardText diff --git a/plugin/src/utils/index.js b/plugin/src/utils/index.js new file mode 100644 index 0000000..d47305f --- /dev/null +++ b/plugin/src/utils/index.js @@ -0,0 +1,285 @@ +// 全屏事件检测 +const getOnfullscreEnevt = () => { + if (document.documentElement.requestFullScreen) { + return 'onfullscreenchange' + } else if (document.documentElement.webkitRequestFullScreen) { + return 'onwebkitfullscreenchange' + } else if (document.documentElement.mozRequestFullScreen) { + return 'onmozfullscreenchange' + } else if (document.documentElement.msRequestFullscreen) { + return 'onmsfullscreenchange' + } +} + +export const fullscrrenEvent = getOnfullscreEnevt() + +// 全屏 +export const fullScreen = element => { + if (element.requestFullScreen) { + element.requestFullScreen() + } else if (element.webkitRequestFullScreen) { + element.webkitRequestFullScreen() + } else if (element.mozRequestFullScreen) { + element.mozRequestFullScreen() + } +} + +// 文件转buffer +export const fileToBuffer = file => { + return new Promise(r => { + const reader = new FileReader() + reader.onload = () => { + r(reader.result) + } + reader.readAsArrayBuffer(file) + }) +} + +// 复制文本到剪贴板 +export const copy = text => { + // 使用textarea可以保留换行 + const input = document.createElement('textarea') + // input.setAttribute('value', text) + input.innerHTML = text + document.body.appendChild(input) + input.select() + document.execCommand('copy') + document.body.removeChild(input) +} + +// 复制文本到剪贴板 +export const setDataToClipboard = data => { + if (navigator.clipboard && navigator.clipboard.writeText) { + navigator.clipboard.writeText(data) + } +} + +// 复制图片到剪贴板 +export const setImgToClipboard = img => { + if (navigator.clipboard && navigator.clipboard.write) { + const data = [new ClipboardItem({ ['image/png']: img })] + navigator.clipboard.write(data) + } +} + +// 打印大纲 +export const printOutline = el => { + const printContent = el.outerHTML + const iframe = document.createElement('iframe') + iframe.setAttribute('style', 'position: absolute; width: 0; height: 0;') + document.body.appendChild(iframe) + const iframeDoc = iframe.contentWindow.document + // 将当前页面的所有样式添加到iframe中 + const styleList = document.querySelectorAll('style') + Array.from(styleList).forEach(el => { + iframeDoc.write(el.outerHTML) + }) + // 设置打印展示方式 - 纵向展示 + iframeDoc.write('') + // 写入内容 + iframeDoc.write('
' + printContent + '
') + setTimeout(function() { + iframe.contentWindow?.print() + document.body.removeChild(iframe) + }, 500) +} + +export const getParentWithClass = (el, className) => { + if (el.classList && el.classList.contains(className)) { + return el + } + if (el.parentNode && el.parentNode !== document.body) { + return getParentWithClass(el.parentNode, className) + } + return null +} + +// 压缩图片 +export const compressImage = (file, options = {}) => { + return new Promise((resolve, reject) => { + const fileType = file.type + let { + maxWidth = 1200, + maxHeight = 1200, + quality = 0.8, + mimeType = '', + exportType = 'dataURL' // blob、file + } = options + const reader = new FileReader() + reader.onload = event => { + // 不处理gif格式 + if (/\/gif$/.test(fileType)) { + return resolve(event.target.result) + } + mimeType = mimeType || fileType + const img = new Image() + img.onload = () => { + // 计算新尺寸,保持宽高比 + let width = img.width + let height = img.height + if (width > maxWidth || height > maxHeight) { + const ratio = Math.min(maxWidth / width, maxHeight / height) + width = Math.floor(width * ratio) + height = Math.floor(height * ratio) + } + const canvas = document.createElement('canvas') + canvas.width = width + canvas.height = height + const ctx = canvas.getContext('2d') + ctx.drawImage(img, 0, 0, width, height) + if (exportType === 'blob') { + canvas.toBlob( + blob => { + resolve(blob) + }, + mimeType, + quality + ) + } else if (exportType === 'file') { + canvas.toBlob( + blob => { + const newFile = new File([blob], file.name, { + type: mimeType, + lastModified: Date.now() + }) + resolve(newFile) + }, + mimeType, + quality + ) + } else { + resolve(canvas.toDataURL(mimeType, quality)) + } + } + img.onerror = function() { + reject(new Error('图片加载失败')) + } + img.src = event.target.result + } + reader.onerror = function() { + reject(new Error('文件读取失败')) + } + reader.readAsDataURL(file) + }) +} + +export const isHyperlink = text => { + return /^https?:\/\//.test(text) +} + +export const isNormalUrl = url => { + return isHyperlink(url) || /^data:/.test(url) +} + +export const isObLinkText = lt => { + return /(!?)\[\[([^\]\|\#]*?)(?:(#|\^)([^\]\|]*))?(?:\|([^\]]*))?\]\]/g.test( + lt + ) +} + +export const dfsTraverse = (root, callback = () => {}) => { + if (!root) return + const stack = [root] // 使用栈存储待处理节点 + while (stack.length > 0) { + const currentNode = stack.pop() // 取栈顶节点 + callback(currentNode) // 处理当前节点 + // 将子节点逆序压入栈(保证从左到右遍历) + if (currentNode.children) { + for (let i = currentNode.children.length - 1; i >= 0; i--) { + stack.push(currentNode.children[i]) + } + } + } +} + +// MIME 类型到扩展名的映射表 +const mimeToExtension = { + 'image/jpeg': '.jpg', + 'image/jpg': '.jpg', + 'image/png': '.png', + 'image/gif': '.gif', + 'image/webp': '.webp', + 'image/svg+xml': '.svg', + 'image/bmp': '.bmp', + 'image/tiff': '.tiff' +} +// 根据 Blob 类型生成正确扩展名的文件名 +export const getFilenameWithExtension = (filename, type) => { + // 提取主文件名(不含原扩展名) + const dotIndex = filename.lastIndexOf('.') + const baseName = dotIndex > 0 ? filename.substring(0, dotIndex) : filename + // 获取对应的扩展名(未知类型时返回 undefined) + const extension = mimeToExtension[type] + // 返回带正确扩展名的新文件名 + return extension ? `${baseName}${extension}` : filename +} + +export const base64ToFile = (base64Data, filename, mimeType) => { + if (!mimeType) { + const matchRes = base64Data.match(/^data:([^;]+);/) + mimeType = matchRes && matchRes[1] ? matchRes[1] : 'image/png' + } + filename = getFilenameWithExtension(filename || 'file' + Date.now(), mimeType) + // 1. 分离 Base64 数据头(如果存在) + const base64WithoutHeader = base64Data.includes(',') + ? base64Data.split(',')[1] + : base64Data + // 2. 解码 Base64 字符串为二进制数据 + const byteCharacters = atob(base64WithoutHeader) + // 3. 转换为 Uint8Array + const byteArrays = new Uint8Array(byteCharacters.length) + for (let i = 0; i < byteCharacters.length; i++) { + byteArrays[i] = byteCharacters.charCodeAt(i) + } + // 4. 创建 Blob 对象 + const blob = new Blob([byteArrays], { type: mimeType }) + // 5. 转换为 File 对象 + return new File([blob], filename, { + type: mimeType, + lastModified: Date.now() + }) +} + +export const imageUrlToBase64 = async url => { + try { + // 1. 获取图片资源 + const response = await fetch(url) + // 2. 检查响应状态 + if (!response.ok) { + throw new Error('请求失败') + } + // 3. 获取图片Blob + const blob = await response.blob() + // 4. 转换为Base64 + return new Promise((resolve, reject) => { + const reader = new FileReader() + reader.onloadend = () => { + // 获取完整的Base64字符串(包含data:前缀) + resolve(reader.result) + } + reader.onerror = reject + // 开始读取Blob数据 + reader.readAsDataURL(blob) + }) + } catch (error) { + console.error('转换失败:', error) + throw error + } +} + +export const checkMindTreeHasImg = tree => { + let hasImg = false + const walk = root => { + if (root.data.image) { + hasImg = true + return + } + if (root.children) { + for (let i = 0; i < root.children.length; i++) { + walk(root.children[i]) + } + } + } + walk(tree) + return hasImg +} \ No newline at end of file diff --git a/plugin/style.css b/plugin/style.css new file mode 100644 index 0000000..5982d61 --- /dev/null +++ b/plugin/style.css @@ -0,0 +1,24 @@ +.smm-save-tip { + font-size: 12px; + margin-right: 10px; +} + +.smm-setting-link-list .smm-setting-link-item svg { + height: 30px; + margin-right: 8px; + width: 30px; +} + +.smm-setting-link-list .smm-setting-link-item a { + align-items: center; + display: flex; + text-align: left; +} + +.smm-setting-sub-item { + padding-left: 50px; +} + +.smm-setting-item-enable-select { + user-select: text; +} \ No newline at end of file diff --git a/plugin/tsconfig.json b/plugin/tsconfig.json new file mode 100644 index 0000000..e8ef946 --- /dev/null +++ b/plugin/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + // 其他配置... + "types": ["node", "obsidian"], + "moduleResolution": "node" // 启用 Node 风格的模块解析 + }, + "include": [ + "src/**/*.ts", + "src/**/*.vue", + "shims-vue.d.ts", // 包含声明文件 + "src/main.js" + ] +} diff --git a/plugin/webpack.config.js b/plugin/webpack.config.js new file mode 100644 index 0000000..b6b8992 --- /dev/null +++ b/plugin/webpack.config.js @@ -0,0 +1,113 @@ +const path = require('path') +const VueLoaderPlugin = require('vue-loader/lib/plugin') +const MiniCssExtractPlugin = require('mini-css-extract-plugin') +const TerserPlugin = require('terser-webpack-plugin') +const CssMinimizerPlugin = require('css-minimizer-webpack-plugin') + +const isProduction = process.env.NODE_ENV === 'production' + +module.exports = { + entry: './main.js', + output: { + filename: 'main.js', + path: path.resolve(__dirname, '../'), + libraryTarget: 'commonjs' + }, + devtool: false, + resolve: { + extensions: ['.ts', '.js', '.vue'], + alias: { + vue$: 'vue/dist/vue.esm.js', // 确保使用完整版 Vue(包含模板编译器) + '@': path.resolve(__dirname, './src'), + stream: require.resolve('stream-browserify') + }, + fallback: { + string_decoder: require.resolve('string_decoder/'), + buffer: require.resolve('buffer/'), + util: require.resolve('util/') + } + }, + module: { + rules: [ + { + test: /\.vue$/, + loader: 'vue-loader' + }, + { + test: /\.css$/, + use: [ + isProduction ? MiniCssExtractPlugin.loader : 'vue-style-loader', + 'css-loader' + ] + }, + // 添加 SCSS/Sass 支持 + { + test: /\.scss$/, + use: [ + isProduction ? MiniCssExtractPlugin.loader : 'vue-style-loader', + 'css-loader', + { + loader: 'sass-loader', + options: { + sassOptions: { + warnDeps: true, // 忽略第三方库警告 + quietDeps: true, // 忽略第三方库警告 + resolveVariables: true // 实验性:尝试解析变量 + } + } + } + ] + }, + { + test: /\.less$/, + use: [ + isProduction ? MiniCssExtractPlugin.loader : 'vue-style-loader', + 'css-loader', + 'less-loader' + ] + }, + // 图片 + { + test: /\.(png|jpe?g|gif)$/i, + type: 'asset/inline' + }, + { + test: /\.(woff|woff2|eot|ttf|svg)$/, + type: 'asset/inline' + }, + { + test: /\.js$/, + loader: 'babel-loader', + exclude: /node_modules/ + } + ] + }, + plugins: [ + new VueLoaderPlugin(), + ...(isProduction + ? [ + new MiniCssExtractPlugin({ + filename: 'styles.css', + ignoreOrder: false + }) + ] + : []) + ], + optimization: { + minimize: isProduction, + minimizer: [ + new TerserPlugin({ + terserOptions: { + compress: { + pure_funcs: ['console.log'] // 仅移除 console.log + }, + format: { comments: false } + } + }), // 压缩 JS + new CssMinimizerPlugin() // 压缩 CSS + ] + }, + externals: { + obsidian: 'commonjs2 obsidian' // 排除 Obsidian API + } +}