From e3a9a78f250ce4c2f6c76a05e1861e8421b70391 Mon Sep 17 00:00:00 2001 From: ninecents Date: Sun, 23 Oct 2022 11:23:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E9=99=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ctool.yml | 80 - .gitignore | 29 - LICENSE | 9 - README.md | 89 - babel.config.js | 5 - images/v1_1.jpg | Bin 173097 -> 0 bytes images/v2_1.png | Bin 132106 -> 0 bytes jsconfig.json | 19 - package.json | 134 - preview.yml | 10 - public/img/icon_chrome.png | Bin 3602 -> 0 bytes public/img/icon_utools.png | Bin 11382 -> 0 bytes public/index.html | 24 - public/index.js | 3 - public/tool.html | 15 - src/adapter/chrome/manifest.json | 36 - src/adapter/chromium/background.js | 52 - src/adapter/chromium/helper.js | 8 - src/adapter/default/db.js | 21 - src/adapter/default/lscache.js | 393 - src/adapter/edge/manifest.json | 35 - src/adapter/firefox/background.js | 51 - src/adapter/firefox/helper.js | 11 - src/adapter/firefox/manifest.json | 35 - src/adapter/utools/db.js | 69 - src/adapter/utools/helper.js | 6 - src/adapter/utools/plugin.json | 16 - src/components/bottom.vue | 119 - src/components/history.vue | 113 - src/components/inputBlock.vue | 58 - src/components/notice.vue | 186 - src/components/optionBlock.vue | 37 - src/config.js | 149 - src/helper.js | 40 - src/i18n/.gitignore | 1 - src/i18n/build.js | 148 - src/i18n/index.js | 111 - src/i18n/locales/en/allMy.i18n.json5 | 6 - src/i18n/locales/en/armConverter.i18n.json5 | 6 - src/i18n/locales/en/ascii.i18n.json5 | 84 - src/i18n/locales/en/barcode.i18n.json5 | 22 - src/i18n/locales/en/base64.i18n.json5 | 24 - src/i18n/locales/en/bcrypt.i18n.json5 | 12 - src/i18n/locales/en/binary.i18n.json5 | 8 - src/i18n/locales/en/code.i18n.json5 | 8 - src/i18n/locales/en/crontab.i18n.json5 | 14 - src/i18n/locales/en/decimalConvert.i18n.json5 | 11 - src/i18n/locales/en/diffs.i18n.json5 | 5 - src/i18n/locales/en/encrypt.i18n.json5 | 13 - src/i18n/locales/en/hash.i18n.json5 | 4 - src/i18n/locales/en/hexString.i18n.json5 | 5 - src/i18n/locales/en/html.i18n.json5 | 6 - src/i18n/locales/en/ip.i18n.json5 | 8 - src/i18n/locales/en/ipcalc.i18n.json5 | 27 - src/i18n/locales/en/json.i18n.json5 | 28 - src/i18n/locales/en/jwt.i18n.json5 | 6 - src/i18n/locales/en/main.i18n.json5 | 90 - src/i18n/locales/en/pinyin.i18n.json5 | 12 - src/i18n/locales/en/qrCode.i18n.json5 | 10 - src/i18n/locales/en/randomString.i18n.json5 | 13 - src/i18n/locales/en/regex.i18n.json5 | 14 - .../locales/en/serializeConversion.i18n.json5 | 5 - src/i18n/locales/en/sign.i18n.json5 | 19 - src/i18n/locales/en/text.i18n.json5 | 65 - src/i18n/locales/en/time.i18n.json5 | 30 - src/i18n/locales/en/timestamp.i18n.json5 | 14 - src/i18n/locales/en/unicode.i18n.json5 | 15 - src/i18n/locales/en/unit.i18n.json5 | 190 - src/i18n/locales/en/url.i18n.json5 | 6 - src/i18n/locales/en/uuid.i18n.json5 | 9 - .../locales/en/variableConversion.i18n.json5 | 4 - src/i18n/locales/en/websocket.i18n.json5 | 18 - src/i18n/locales/zh_CN/allMy.i18n.json5 | 6 - .../locales/zh_CN/armConverter.i18n.json5 | 6 - src/i18n/locales/zh_CN/ascii.i18n.json5 | 51 - src/i18n/locales/zh_CN/barcode.i18n.json5 | 22 - src/i18n/locales/zh_CN/base64.i18n.json5 | 24 - src/i18n/locales/zh_CN/bcrypt.i18n.json5 | 12 - src/i18n/locales/zh_CN/binary.i18n.json5 | 8 - src/i18n/locales/zh_CN/code.i18n.json5 | 8 - src/i18n/locales/zh_CN/crontab.i18n.json5 | 14 - .../locales/zh_CN/decimalConvert.i18n.json5 | 11 - src/i18n/locales/zh_CN/diffs.i18n.json5 | 5 - src/i18n/locales/zh_CN/encrypt.i18n.json5 | 13 - src/i18n/locales/zh_CN/hash.i18n.json5 | 4 - src/i18n/locales/zh_CN/hexString.i18n.json5 | 5 - src/i18n/locales/zh_CN/html.i18n.json5 | 6 - src/i18n/locales/zh_CN/ip.i18n.json5 | 8 - src/i18n/locales/zh_CN/ipcalc.i18n.json5 | 27 - src/i18n/locales/zh_CN/json.i18n.json5 | 27 - src/i18n/locales/zh_CN/jwt.i18n.json5 | 6 - src/i18n/locales/zh_CN/main.i18n.json5 | 90 - src/i18n/locales/zh_CN/pinyin.i18n.json5 | 12 - src/i18n/locales/zh_CN/qrCode.i18n.json5 | 10 - .../locales/zh_CN/randomString.i18n.json5 | 13 - src/i18n/locales/zh_CN/regex.i18n.json5 | 14 - .../zh_CN/serializeConversion.i18n.json5 | 5 - src/i18n/locales/zh_CN/sign.i18n.json5 | 19 - src/i18n/locales/zh_CN/text.i18n.json5 | 65 - src/i18n/locales/zh_CN/time.i18n.json5 | 30 - src/i18n/locales/zh_CN/timestamp.i18n.json5 | 14 - src/i18n/locales/zh_CN/unicode.i18n.json5 | 15 - src/i18n/locales/zh_CN/unit.i18n.json5 | 188 - src/i18n/locales/zh_CN/url.i18n.json5 | 6 - src/i18n/locales/zh_CN/uuid.i18n.json5 | 9 - .../zh_CN/variableConversion.i18n.json5 | 4 - src/i18n/locales/zh_CN/websocket.i18n.json5 | 18 - src/statics/crontab_cn.png | Bin 26251 -> 0 bytes src/statics/crontab_en.png | Bin 3787 -> 0 bytes src/statics/theme.less | 17 - src/statics/theme_dark.css | 40 - src/tool.js | 55 - src/tool.router.js | 191 - src/tool.vue | 145 - src/tool/adapter.js | 255 - src/tool/cache.js | 61 - src/tool/clipboard.js | 36 - src/tool/config.js | 102 - src/tool/db.js | 24 - src/tool/event.js | 18 - src/tool/history.js | 103 - src/tool/instance.js | 23 - src/tool/model.js | 166 - src/tool/setting.js | 45 - src/tool/theme.js | 5 - src/tool/user.js | 15 - src/views/setting/block.vue | 114 - src/views/setting/common.vue | 54 - src/views/tool/armConverter.vue | 264 - src/views/tool/ascii.vue | 152 - src/views/tool/barcode.vue | 270 - src/views/tool/base64.vue | 252 - src/views/tool/bcrypt.vue | 121 - src/views/tool/binary.vue | 82 - src/views/tool/code.vue | 123 - .../tool/components/autoHeightTextarea.vue | 60 - src/views/tool/components/codeEditor.vue | 128 - src/views/tool/components/diffEditor.vue | 85 - src/views/tool/components/disableMask.vue | 45 - src/views/tool/components/heightResize.vue | 83 - .../tool/components/pasteClipboardFlie.vue | 40 - .../tool/components/regex/referenceEn.vue | 244 - .../tool/components/regex/referenceZh.vue | 234 - src/views/tool/components/updateFile.vue | 42 - src/views/tool/crontab.vue | 152 - src/views/tool/decimalConvert.vue | 142 - src/views/tool/diffs.vue | 106 - src/views/tool/encrypt.vue | 252 - src/views/tool/hash.vue | 122 - src/views/tool/hex2base64.vue | 78 - src/views/tool/hexString.vue | 58 - src/views/tool/html.vue | 45 - src/views/tool/ip.vue | 63 - src/views/tool/ipcalc.vue | 317 - src/views/tool/json.vue | 218 - src/views/tool/jwt.vue | 71 - src/views/tool/library/ascii.js | 120 - src/views/tool/library/binary.js | 122 - src/views/tool/library/editor.js | 127 - src/views/tool/library/formatter.js | 41 - src/views/tool/library/formatter/angular.js | 14 - src/views/tool/library/formatter/css.js | 20 - src/views/tool/library/formatter/graphql.js | 13 - src/views/tool/library/formatter/html.js | 34 - src/views/tool/library/formatter/index.js | 45 - .../tool/library/formatter/javascript.js | 32 - src/views/tool/library/formatter/json.js | 30 - src/views/tool/library/formatter/less.js | 13 - src/views/tool/library/formatter/markdown.js | 14 - src/views/tool/library/formatter/php.js | 13 - src/views/tool/library/formatter/scss.js | 13 - src/views/tool/library/formatter/sql.js | 17 - .../tool/library/formatter/typescript.js | 13 - src/views/tool/library/formatter/uglify.js | 12702 ---------------- src/views/tool/library/formatter/vue.js | 14 - src/views/tool/library/formatter/xml.js | 21 - src/views/tool/library/formatter/yaml.js | 14 - src/views/tool/library/ipcalc.js | 120 - src/views/tool/library/ipcalc_copy.js | 273 - .../library/json/components/csvToJson.vue | 97 - .../tool/library/json/components/jsonPath.vue | 67 - .../library/json/components/jsonToCsv.vue | 62 - .../library/json/components/jsonToObject.vue | 133 - .../library/json/components/jsonToTable.vue | 61 - .../library/json/components/tableToJson.vue | 97 - src/views/tool/library/json/csvToJson.js | 12 - src/views/tool/library/json/helper.js | 44 - src/views/tool/library/json/index.js | 90 - src/views/tool/library/json/json2CSharp.js | 50 - src/views/tool/library/json/json2Dart.js | 196 - src/views/tool/library/json/json2Go.js | 359 - src/views/tool/library/json/json2Java.js | 136 - src/views/tool/library/json/json2Protobuf.js | 300 - src/views/tool/library/json/json2php/class.js | 145 - .../tool/library/json/json2php/constructor.js | 47 - src/views/tool/library/json/json2php/deps.js | 33 - .../library/json/json2php/getterSetter.js | 56 - src/views/tool/library/json/json2php/index.js | 60 - .../tool/library/json/json2php/property.js | 46 - src/views/tool/library/json/json2php/types.js | 29 - src/views/tool/library/json/json2php/utils.js | 18 - src/views/tool/library/json/jsonToTable.js | 31 - src/views/tool/library/json/tableToJson.js | 57 - src/views/tool/library/radix.js | 20 - src/views/tool/library/serializeConversion.js | 100 - src/views/tool/library/text.js | 191 - src/views/tool/library/unicode.js | 115 - src/views/tool/library/unit.js | 1751 --- src/views/tool/library/varCamelCase.js | 177 - src/views/tool/pinyin.vue | 94 - src/views/tool/pinyin/dict.js | 407 - src/views/tool/qrCode.vue | 183 - src/views/tool/randomString.vue | 106 - src/views/tool/regex.vue | 126 - src/views/tool/serializeConversion.vue | 57 - src/views/tool/sign.vue | 176 - src/views/tool/text.vue | 283 - src/views/tool/time.vue | 247 - src/views/tool/timestamp.vue | 187 - src/views/tool/unicode.vue | 71 - src/views/tool/unit.vue | 167 - src/views/tool/url.vue | 52 - src/views/tool/uuid.vue | 75 - src/views/tool/variableConversion.vue | 61 - src/views/tool/websocket.vue | 199 - src/views/yeahmao/code_gen/codeGenJava.vue | 91 - src/views/yeahmao/code_gen/codeGenJson.vue | 200 - src/views/yeahmao/constFinder.vue | 103 - src/views/yeahmao/hexConvert.vue | 106 - vue.config.js | 106 - ...0\346\272\220\344\273\273\345\212\2411.md" | 134 - ...0\346\272\220\344\273\273\345\212\2412.md" | 45 - 232 files changed, 30697 deletions(-) delete mode 100644 .github/workflows/ctool.yml delete mode 100644 .gitignore delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100644 babel.config.js delete mode 100644 images/v1_1.jpg delete mode 100644 images/v2_1.png delete mode 100644 jsconfig.json delete mode 100644 package.json delete mode 100644 preview.yml delete mode 100644 public/img/icon_chrome.png delete mode 100644 public/img/icon_utools.png delete mode 100644 public/index.html delete mode 100644 public/index.js delete mode 100644 public/tool.html delete mode 100644 src/adapter/chrome/manifest.json delete mode 100644 src/adapter/chromium/background.js delete mode 100644 src/adapter/chromium/helper.js delete mode 100644 src/adapter/default/db.js delete mode 100644 src/adapter/default/lscache.js delete mode 100644 src/adapter/edge/manifest.json delete mode 100644 src/adapter/firefox/background.js delete mode 100644 src/adapter/firefox/helper.js delete mode 100644 src/adapter/firefox/manifest.json delete mode 100644 src/adapter/utools/db.js delete mode 100644 src/adapter/utools/helper.js delete mode 100644 src/adapter/utools/plugin.json delete mode 100644 src/components/bottom.vue delete mode 100644 src/components/history.vue delete mode 100644 src/components/inputBlock.vue delete mode 100644 src/components/notice.vue delete mode 100644 src/components/optionBlock.vue delete mode 100644 src/config.js delete mode 100644 src/helper.js delete mode 100644 src/i18n/.gitignore delete mode 100644 src/i18n/build.js delete mode 100644 src/i18n/index.js delete mode 100644 src/i18n/locales/en/allMy.i18n.json5 delete mode 100644 src/i18n/locales/en/armConverter.i18n.json5 delete mode 100644 src/i18n/locales/en/ascii.i18n.json5 delete mode 100644 src/i18n/locales/en/barcode.i18n.json5 delete mode 100644 src/i18n/locales/en/base64.i18n.json5 delete mode 100644 src/i18n/locales/en/bcrypt.i18n.json5 delete mode 100644 src/i18n/locales/en/binary.i18n.json5 delete mode 100644 src/i18n/locales/en/code.i18n.json5 delete mode 100644 src/i18n/locales/en/crontab.i18n.json5 delete mode 100644 src/i18n/locales/en/decimalConvert.i18n.json5 delete mode 100644 src/i18n/locales/en/diffs.i18n.json5 delete mode 100644 src/i18n/locales/en/encrypt.i18n.json5 delete mode 100644 src/i18n/locales/en/hash.i18n.json5 delete mode 100644 src/i18n/locales/en/hexString.i18n.json5 delete mode 100644 src/i18n/locales/en/html.i18n.json5 delete mode 100644 src/i18n/locales/en/ip.i18n.json5 delete mode 100644 src/i18n/locales/en/ipcalc.i18n.json5 delete mode 100644 src/i18n/locales/en/json.i18n.json5 delete mode 100644 src/i18n/locales/en/jwt.i18n.json5 delete mode 100644 src/i18n/locales/en/main.i18n.json5 delete mode 100644 src/i18n/locales/en/pinyin.i18n.json5 delete mode 100644 src/i18n/locales/en/qrCode.i18n.json5 delete mode 100644 src/i18n/locales/en/randomString.i18n.json5 delete mode 100644 src/i18n/locales/en/regex.i18n.json5 delete mode 100644 src/i18n/locales/en/serializeConversion.i18n.json5 delete mode 100644 src/i18n/locales/en/sign.i18n.json5 delete mode 100644 src/i18n/locales/en/text.i18n.json5 delete mode 100644 src/i18n/locales/en/time.i18n.json5 delete mode 100644 src/i18n/locales/en/timestamp.i18n.json5 delete mode 100644 src/i18n/locales/en/unicode.i18n.json5 delete mode 100644 src/i18n/locales/en/unit.i18n.json5 delete mode 100644 src/i18n/locales/en/url.i18n.json5 delete mode 100644 src/i18n/locales/en/uuid.i18n.json5 delete mode 100644 src/i18n/locales/en/variableConversion.i18n.json5 delete mode 100644 src/i18n/locales/en/websocket.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/allMy.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/armConverter.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/ascii.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/barcode.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/base64.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/bcrypt.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/binary.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/code.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/crontab.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/decimalConvert.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/diffs.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/encrypt.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/hash.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/hexString.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/html.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/ip.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/ipcalc.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/json.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/jwt.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/main.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/pinyin.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/qrCode.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/randomString.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/regex.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/serializeConversion.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/sign.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/text.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/time.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/timestamp.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/unicode.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/unit.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/url.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/uuid.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/variableConversion.i18n.json5 delete mode 100644 src/i18n/locales/zh_CN/websocket.i18n.json5 delete mode 100644 src/statics/crontab_cn.png delete mode 100644 src/statics/crontab_en.png delete mode 100644 src/statics/theme.less delete mode 100644 src/statics/theme_dark.css delete mode 100644 src/tool.js delete mode 100644 src/tool.router.js delete mode 100644 src/tool.vue delete mode 100644 src/tool/adapter.js delete mode 100644 src/tool/cache.js delete mode 100644 src/tool/clipboard.js delete mode 100644 src/tool/config.js delete mode 100644 src/tool/db.js delete mode 100644 src/tool/event.js delete mode 100644 src/tool/history.js delete mode 100644 src/tool/instance.js delete mode 100644 src/tool/model.js delete mode 100644 src/tool/setting.js delete mode 100644 src/tool/theme.js delete mode 100644 src/tool/user.js delete mode 100644 src/views/setting/block.vue delete mode 100644 src/views/setting/common.vue delete mode 100644 src/views/tool/armConverter.vue delete mode 100644 src/views/tool/ascii.vue delete mode 100644 src/views/tool/barcode.vue delete mode 100644 src/views/tool/base64.vue delete mode 100644 src/views/tool/bcrypt.vue delete mode 100644 src/views/tool/binary.vue delete mode 100644 src/views/tool/code.vue delete mode 100644 src/views/tool/components/autoHeightTextarea.vue delete mode 100644 src/views/tool/components/codeEditor.vue delete mode 100644 src/views/tool/components/diffEditor.vue delete mode 100644 src/views/tool/components/disableMask.vue delete mode 100644 src/views/tool/components/heightResize.vue delete mode 100644 src/views/tool/components/pasteClipboardFlie.vue delete mode 100644 src/views/tool/components/regex/referenceEn.vue delete mode 100644 src/views/tool/components/regex/referenceZh.vue delete mode 100644 src/views/tool/components/updateFile.vue delete mode 100644 src/views/tool/crontab.vue delete mode 100644 src/views/tool/decimalConvert.vue delete mode 100644 src/views/tool/diffs.vue delete mode 100644 src/views/tool/encrypt.vue delete mode 100644 src/views/tool/hash.vue delete mode 100644 src/views/tool/hex2base64.vue delete mode 100644 src/views/tool/hexString.vue delete mode 100644 src/views/tool/html.vue delete mode 100644 src/views/tool/ip.vue delete mode 100644 src/views/tool/ipcalc.vue delete mode 100644 src/views/tool/json.vue delete mode 100644 src/views/tool/jwt.vue delete mode 100644 src/views/tool/library/ascii.js delete mode 100644 src/views/tool/library/binary.js delete mode 100644 src/views/tool/library/editor.js delete mode 100644 src/views/tool/library/formatter.js delete mode 100644 src/views/tool/library/formatter/angular.js delete mode 100644 src/views/tool/library/formatter/css.js delete mode 100644 src/views/tool/library/formatter/graphql.js delete mode 100644 src/views/tool/library/formatter/html.js delete mode 100644 src/views/tool/library/formatter/index.js delete mode 100644 src/views/tool/library/formatter/javascript.js delete mode 100644 src/views/tool/library/formatter/json.js delete mode 100644 src/views/tool/library/formatter/less.js delete mode 100644 src/views/tool/library/formatter/markdown.js delete mode 100644 src/views/tool/library/formatter/php.js delete mode 100644 src/views/tool/library/formatter/scss.js delete mode 100644 src/views/tool/library/formatter/sql.js delete mode 100644 src/views/tool/library/formatter/typescript.js delete mode 100644 src/views/tool/library/formatter/uglify.js delete mode 100644 src/views/tool/library/formatter/vue.js delete mode 100644 src/views/tool/library/formatter/xml.js delete mode 100644 src/views/tool/library/formatter/yaml.js delete mode 100644 src/views/tool/library/ipcalc.js delete mode 100644 src/views/tool/library/ipcalc_copy.js delete mode 100644 src/views/tool/library/json/components/csvToJson.vue delete mode 100644 src/views/tool/library/json/components/jsonPath.vue delete mode 100644 src/views/tool/library/json/components/jsonToCsv.vue delete mode 100644 src/views/tool/library/json/components/jsonToObject.vue delete mode 100644 src/views/tool/library/json/components/jsonToTable.vue delete mode 100644 src/views/tool/library/json/components/tableToJson.vue delete mode 100644 src/views/tool/library/json/csvToJson.js delete mode 100644 src/views/tool/library/json/helper.js delete mode 100644 src/views/tool/library/json/index.js delete mode 100644 src/views/tool/library/json/json2CSharp.js delete mode 100644 src/views/tool/library/json/json2Dart.js delete mode 100644 src/views/tool/library/json/json2Go.js delete mode 100644 src/views/tool/library/json/json2Java.js delete mode 100644 src/views/tool/library/json/json2Protobuf.js delete mode 100644 src/views/tool/library/json/json2php/class.js delete mode 100644 src/views/tool/library/json/json2php/constructor.js delete mode 100644 src/views/tool/library/json/json2php/deps.js delete mode 100644 src/views/tool/library/json/json2php/getterSetter.js delete mode 100644 src/views/tool/library/json/json2php/index.js delete mode 100644 src/views/tool/library/json/json2php/property.js delete mode 100644 src/views/tool/library/json/json2php/types.js delete mode 100644 src/views/tool/library/json/json2php/utils.js delete mode 100644 src/views/tool/library/json/jsonToTable.js delete mode 100644 src/views/tool/library/json/tableToJson.js delete mode 100644 src/views/tool/library/radix.js delete mode 100644 src/views/tool/library/serializeConversion.js delete mode 100644 src/views/tool/library/text.js delete mode 100644 src/views/tool/library/unicode.js delete mode 100644 src/views/tool/library/unit.js delete mode 100644 src/views/tool/library/varCamelCase.js delete mode 100644 src/views/tool/pinyin.vue delete mode 100644 src/views/tool/pinyin/dict.js delete mode 100644 src/views/tool/qrCode.vue delete mode 100644 src/views/tool/randomString.vue delete mode 100644 src/views/tool/regex.vue delete mode 100644 src/views/tool/serializeConversion.vue delete mode 100644 src/views/tool/sign.vue delete mode 100644 src/views/tool/text.vue delete mode 100644 src/views/tool/time.vue delete mode 100644 src/views/tool/timestamp.vue delete mode 100644 src/views/tool/unicode.vue delete mode 100644 src/views/tool/unit.vue delete mode 100644 src/views/tool/url.vue delete mode 100644 src/views/tool/uuid.vue delete mode 100644 src/views/tool/variableConversion.vue delete mode 100644 src/views/tool/websocket.vue delete mode 100644 src/views/yeahmao/code_gen/codeGenJava.vue delete mode 100644 src/views/yeahmao/code_gen/codeGenJson.vue delete mode 100644 src/views/yeahmao/constFinder.vue delete mode 100644 src/views/yeahmao/hexConvert.vue delete mode 100644 vue.config.js delete mode 100644 "\345\274\200\346\272\220\344\273\273\345\212\2411.md" delete mode 100644 "\345\274\200\346\272\220\344\273\273\345\212\2412.md" diff --git a/.github/workflows/ctool.yml b/.github/workflows/ctool.yml deleted file mode 100644 index 5ee1d0f..0000000 --- a/.github/workflows/ctool.yml +++ /dev/null @@ -1,80 +0,0 @@ -name: Build Ctool -on: [ push ] -jobs: - deploy: - runs-on: ubuntu-latest - strategy: - matrix: - node-version: [ 16.x ] - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - - name: Initialize / Install Dependencies - run: | - mkdir temp_release - npm install - - - name: Build web - run: | - npm run build -adapter=web - cp -r ./dist ./dist_gh_pages - cd ./dist - zip -r -q ../temp_release/web.zip ./* - cd ../ - unzip -l ./temp_release/web.zip - - - name: Build chrome - if: startsWith(github.ref, 'refs/tags/') - run: | - npm run build -adapter=chrome - cd ./dist - zip -r -q ../temp_release/chrome.zip ./* - cd ../ - - - name: Build utools - if: startsWith(github.ref, 'refs/tags/') - run: | - npm run build -adapter=utools - cd ./dist - zip -r -q ../temp_release/utools.zip ./* - cd ../ - - - name: Build edge - if: startsWith(github.ref, 'refs/tags/') - run: | - npm run build -adapter=edge - cd ./dist - zip -r -q ../temp_release/edge.zip ./* - cd ../ - - - name: Build firefox - if: startsWith(github.ref, 'refs/tags/') - run: | - npm run build -adapter=firefox - cd ./dist - zip -r -q ../temp_release/firefox.zip ./* - cd ../ - - - name: Upload build to github - uses: softprops/action-gh-release@v1 - if: startsWith(github.ref, 'refs/tags/') - with: - prerelease: true - files: | - ./temp_release/web.zip - ./temp_release/chrome.zip - ./temp_release/utools.zip - ./temp_release/edge.zip - ./temp_release/firefox.zip - - - name: Deploy web to gh-pages - uses: peaceiris/actions-gh-pages@v3 - with: - deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} - publish_dir: ./dist_gh_pages diff --git a/.gitignore b/.gitignore deleted file mode 100644 index af15c93..0000000 --- a/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -.DS_Store -/node_modules -/temp_release -/desktop/node_modules -/dist -/public/manifest.json -/public/plugin.json -/public/README.md -/id_rsa.pem - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw* -test.js -/public/background.js diff --git a/LICENSE b/LICENSE deleted file mode 100644 index ae4b68c..0000000 --- a/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright 2017 baiy - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 8b1c584..0000000 --- a/README.md +++ /dev/null @@ -1,89 +0,0 @@ -# 程序开发常用工具 - -使用过程中的任何问题或者需要新的工具欢迎提交`Issue`,新工具如果可以提供实现代码就完美了O(∩_∩)O - -## 先睹为快 - -![](https://cdn.jsdelivr.net/gh/baiy/Ctool@master/images/v2_1.png) - -## 在线使用 - - - -## chrome 安装 - -- 在 [Chrome 应用商店](https://chrome.google.com/webstore/detail/ipfcebkfhpkjeikaammlkcnalknjahmh) 安装 - -## 微软 Edge 安装 - -- 在 [微软 Edge 应用商店](https://microsoftedge.microsoft.com/addons/detail/cihekagpnnadjjplgljkmkpcfiopfplc) 安装 - -## 火狐 Firefox 安装 - -- 在 [火狐 Firefox 应用商店](https://addons.mozilla.org/zh-CN/firefox/addon/ctool/) 安装 - -## utools 安装 - -- [utools](https://u.tools/) 插件中心 搜索 `ctool` - -## 开发 - -``` -# 安装依赖 -npm install -# 调试 -npm run serve -adapter=[chrome|edge|utools|firefox|web] -# 编译 -npm run build -adapter=[chrome|edge|utools|firefox|web] -// 编译输出目录: `/dist/` -``` - -## 功能列表 - -| 功能 | 说明 |离线使用| -|--------------|-------------------------------------------------------------------------------------------------------------------------------|---| -| 哈希 | `md5`, `sha1`, `sha256`, `sha512`,`sm3` |√| -| 加密/解密 | `AES`,`DES`,`RC4`,`Rabbit`,`TripleDes`,`sm2`,`sm4` |√| -| BASE64编码 | `加密`,`解密`,`支持文件` |√| -| URL编码 | `编码`,`解码` |√| -| 时间戳 | `双向转换`,`毫秒` |√| -| 二维码 | `生成`,`解析` |√| -| 条形码 | `生成` |√| -| 汉字转拼音 | `声调`,`首字母`,`分隔符` |√| -| IP地址查询 | `运营商`,`城市` |×| -| 代码格式化 | `js`, `ts`, `html`, `css`, `less`, `scss`, `graphql`, `vue`, `angular`, `markdown`, `json5`, `xml`, `yaml`, `sql`, `压缩` |√| -| Unicode | `双向转换`,`emoji`,`html 实体`,`css 实体` |√| -| 进制转换 | `2-64进制` |√| -| 正则表达式 | `匹配`,`查找`,`替换` |√| -| 随机字符生成器 | `批量`,`特殊字符` |√| -| 序列化转换 | `json`, `xml`, `yaml`, `phpArray`, `phpSerialize`, `properties` |√| -| 文本差异化对比 | `行`,`单词`,`css` |√| -| crontab校验 | `Crontab`,`规则`,`校验`,`例子` |√| -| websocket调试 | `websocket`,`在线调试` |×| -| 单位换算 | `长度`,`面积`,`体积`,`质量`,`温度`,`压力`,`功率`,`功`,`密度`,`力`,`时间`,`速度`,`数据存储`,`角度` |√| -| 时间计算器 | - |√| -| JSON工具 | `格式化`,`校验`,`压缩`,`转义`,`去除转义`,`Unicode转中文`,`中文转Unicode`,`转GET参数`,`Java`, `C#`, `Go`, `Dart`,`csv`,`table`,`Protobuf`,`jsonpath` |√| -| UUID | `在线生成uuid` |√| -| ascii编码转换 | `十进制`, `十六进制`, `八进制`, `二进制`, `字符串` |√| -| 变量名格式转换 | `Var Name`, `var-name`, `VAR_NAME`, `VarName`, `varName`, `var_name`, `var name` |√| -| jwt解码 | `header`, `payload` |√| -| Hex/String转换 | `hex to string`, `string to hex`, `十六进制转字符串`, `字符串转十六进制` |√| -| Hex/Base64转换 | `hex to Base64`, `Base64 to hex` |√| -| 文本处理 | `大小写转换`, `中英文标点转换`, `简繁转换`, `替换`, `字符统计`, `行去重`, `添加行号`, `行排序`, `过滤行首尾不可见字符`,`过滤空行` |√| -| html编码 | - |√| -| 原码/反码/补码 | `生成` |√| -| ARM/HEX | `互转` |×| -| Bcrypt | `加密`,`验证` |√| -| IP网络计算器 | `子网掩码各个进制表示换算,IP地址进制表示换算` |√| - -## 功能列表-yeahmao -| 功能 | 说明 |离线使用| -|--------------|-------------------------------------------------------------------------------------------------------------------------------|---| -| 字节转码 | `x64dbg拷贝的汇编代码`, `美化后`, `字符串格式`, `字节数组格式`,`` |√| -| 常量查看器 | `winerror.h`, `ntstatus.h` |√| - -## 功能列表-代码生成器 -| 功能 | 说明 |离线使用| -|--------------|-------------------------------------------------------------------------------------------------------------------------------|---| -| GenJson | `k-v字符串列表转换为json`, `excel表中数据转json` |√| -| GenJava | `超长字符串报错`,`StringBuilder ==> str` |√| diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index c94e729..0000000 --- a/babel.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset' - ] -} diff --git a/images/v1_1.jpg b/images/v1_1.jpg deleted file mode 100644 index 85aaeaded6ac095da98e61a49c511206f0275942..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173097 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

q7blSU`&rUq*Njz(x&3UsK`-Bo_R7i4&%} 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 diff --git a/images/v2_1.png b/images/v2_1.png deleted file mode 100644 index b9fe76ffccd0ddb54827720186c484036dbe79ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132106 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

  • AWA#=G2$ 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 LTq(Zf@Zf&|N*URd diff --git a/jsconfig.json b/jsconfig.json deleted file mode 100644 index 4aafc5f..0000000 --- a/jsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "module": "esnext", - "baseUrl": "./", - "moduleResolution": "node", - "paths": { - "@/*": [ - "src/*" - ] - }, - "lib": [ - "esnext", - "dom", - "dom.iterable", - "scripthost" - ] - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 1381b03..0000000 --- a/package.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "name": "c-tool", - "version": "1.11.2", - "private": true, - "scripts": { - "serve": "vue-cli-service serve --port 8081", - "dev": "vue-cli-service serve --port 8081", - "build": "vue-cli-service build --no-module", - "lint": "vue-cli-service lint", - "report": "vue-cli-service build --report" - }, - "dependencies": { - "@babel/parser": "^7.17.0", - "@prettier/plugin-php": "^0.17.6", - "@typescript-eslint/typescript-estree": "^5.10.2", - "angular-html-parser": "^1.8.0", - "axios": "^0.21.4", - "babel-runtime": "^6.26.0", - "bcryptjs": "^2.4.3", - "bignumber.js": "^9.0.2", - "camel-case": "^4.1.2", - "chinese-simple2traditional": "^1.0.1", - "code-formatter": "0.0.1", - "codemirror": "^5.65.1", - "codemirror-graphql": "^1.2.11", - "core-js": "^3.8.3", - "cosmiconfig": "^7.0.1", - "cron-parser": "^2.16.3", - "cronstrue": "^1.123.0", - "crypto-js": "^3.3.0", - "csv-parse": "^5.0.4", - "csv-stringify": "^6.0.5", - "darkreader": "^4.9.44", - "diff-match-patch": "^1.0.5", - "file": "^0.2.2", - "file-type": "^16.5.3", - "graphql": "15.7.2", - "hexy": "^0.3.4", - "ipinyinjs": "^1.0.0", - "jimp": "^0.16.1", - "js-base64": "^3.7.2", - "js-htmlencode": "^0.3.0", - "js-yaml": "^3.14.1", - "jsbarcode": "^3.11.5", - "json-to-properties": "^1.1.3", - "json5": "^2.2.0", - "jsonlint": "^1.6.3", - "jsonpath-plus": "^6.0.1", - "jsrsasign": "^10.5.1", - "jsrsasign-util": "^1.0.5", - "jwt-decode": "^3.1.2", - "lodash": "^4.17.21", - "mime-types": "^2.1.34", - "moment": "^2.29.1", - "netmask": "^2.0.2", - "pascal-case": "^3.1.2", - "php-array-reader": "^1.3.2", - "phparr": "^0.2.0", - "pluralize": "^8.0.0", - "postcss": "^8.4.6", - "postcss-less": "^5.0.0", - "postcss-scss": "^4.0.3", - "prettier": "^2.5.1", - "prettier-plugin-sql": "^0.3.0", - "properties-to-json": "^0.1.7", - "qrcode": "^1.5.0", - "qrcode-parser": "^1.2.0", - "qs": "^6.10.3", - "serialize-php": "^1.1.2", - "sm-crypto": "^0.3.7", - "system": "^2.0.1", - "typescript": "^4.5.5", - "uglify-js": "3.14.3", - "uuid": "^8.3.2", - "view-design": "^4.7.0", - "vue": "^2.6.14", - "vue-i18n": "^8.27.0", - "vue-router": "^3.5.3", - "vuedraggable": "^2.24.3", - "x2js": "git+https://gitee.com/ltlwill/x2js.git", - "xml-formatter": "^2.6.1" - }, - "devDependencies": { - "@babel/core": "^7.12.16", - "@babel/eslint-parser": "^7.12.16", - "@vue/cli-plugin-babel": "~5.0.0", - "@vue/cli-plugin-eslint": "~5.0.0", - "@vue/cli-service": "~5.0.0", - "eslint": "^7.32.0", - "eslint-plugin-vue": "^8.0.3", - "less": "^2.7.0", - "less-loader": "^6.0.0", - "node-polyfill-webpack-plugin": "^1.1.4", - "utools-api-types": "^2.3.0", - "vue-cli-plugin-iview": "~2.0.0", - "vue-template-compiler": "^2.6.14" - }, - "eslintConfig": { - "root": true, - "env": { - "node": true, - "webextensions": true - }, - "extends": [ - "plugin:vue/essential", - "eslint:recommended" - ], - "rules": { - "no-console": "off", - "vue/no-parsing-error": [ - 2, - { - "x-invalid-end-tag": false - } - ] - }, - "parserOptions": { - "parser": "@babel/eslint-parser" - }, - "globals": { - "__": "writable" - } - }, - "postcss": { - "plugins": { - "autoprefixer": {} - } - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not dead" - ] -} diff --git a/preview.yml b/preview.yml deleted file mode 100644 index 1b4cc79..0000000 --- a/preview.yml +++ /dev/null @@ -1,10 +0,0 @@ -# preview.yml -autoOpen: false # 打开工作空间时是否自动开启所有应用的预览 -apps: - - port: 8081 # 应用的端口 - run: npm i && npm run dev # 应用的启动命 - command: # 使用此命令启动服务,且不执行run - root: ./ # 应用的启动目录 - name: front_end__ctool # 应用名称 - description: 我的第一个 App。 # 应用描述 - autoOpen: true # 打开工作空间时是否自动开启预览(优先级高于根级 autoOpen diff --git a/public/img/icon_chrome.png b/public/img/icon_chrome.png deleted file mode 100644 index 15216665fc028f98d73edcea77eac22777dd0bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3602 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 diff --git a/public/img/icon_utools.png b/public/img/icon_utools.png deleted file mode 100644 index 37ac92521c6f7b345bb6a98c40a2859758e8eb62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11382 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 Ef?i(Cq5uE@ diff --git a/public/index.html b/public/index.html deleted file mode 100644 index d18cb5a..0000000 --- a/public/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - 加载中... - - - -
    -
    加载中...
    -
    - - - \ No newline at end of file diff --git a/public/index.js b/public/index.js deleted file mode 100644 index a19ce35..0000000 --- a/public/index.js +++ /dev/null @@ -1,3 +0,0 @@ -setTimeout(function () { - window.location.href = "tool.html" -}, 1); \ No newline at end of file diff --git a/public/tool.html b/public/tool.html deleted file mode 100644 index 32388de..0000000 --- a/public/tool.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - Ctool 程序开发常用工具 - - -
    -
    -
    -
    - - diff --git a/src/adapter/chrome/manifest.json b/src/adapter/chrome/manifest.json deleted file mode 100644 index 21ae4c9..0000000 --- a/src/adapter/chrome/manifest.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "__MSG_main_manifest_name__", - "description": "__MSG_main_manifest_description__", - "version": "##version##", - "author": "wo@baiy.org", - "offline_enabled": true, - "homepage_url": "https://github.com/baiy/Ctool", - "manifest_version": 2, - "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'", - "browser_action": { - "default_icon": "img/icon_chrome.png", - "default_title": "__MSG_main_manifest_default_title__", - "default_popup": "index.html" - }, - "background": { - "scripts": ["background.js"] - }, - "icons": { - "16": "img/icon_chrome.png", - "48": "img/icon_chrome.png", - "128": "img/icon_chrome.png" - }, - "permissions": [ - "clipboardWrite", - "clipboardRead", - "*://get.geojs.io/*", - "*://*.baiy.org/*" - ], - "commands": { - "panel": { - "description": "__MSG_main_manifest_commands_panel_description__", - "global": true - } - }, - "update_url": "http://clients2.google.com/service/update2/crx" -} diff --git a/src/adapter/chromium/background.js b/src/adapter/chromium/background.js deleted file mode 100644 index a5581e2..0000000 --- a/src/adapter/chromium/background.js +++ /dev/null @@ -1,52 +0,0 @@ -let windowId = null; -// 打开独立窗口 -const panel = { - create() { - chrome.windows.create({ - url: chrome.runtime.getURL("tool.html"), - type: "popup", - width: 810, - left: 200, - top: 200, - height: 610, - }, (w) => { - windowId = w.id - }) - }, - open() { - if (windowId === null) { - this.create() - } else { - chrome.windows.get(windowId, (w) => { - if (!w) { - this.create() - } else { - chrome.windows.update(windowId, {focused: true}) - } - }) - } - - }, - onRemoved(id) { - if (id === windowId) { - windowId = null; - } - } -} - -// 注册快捷键 -chrome.commands.onCommand.addListener((command) => { - switch (command) { - case "panel": - panel.open() - - break; - default: - return; - } -}) - -// 窗口关闭事件 -chrome.windows.onRemoved.addListener((id) => { - panel.onRemoved(id); -}) diff --git a/src/adapter/chromium/helper.js b/src/adapter/chromium/helper.js deleted file mode 100644 index 81de9ee..0000000 --- a/src/adapter/chromium/helper.js +++ /dev/null @@ -1,8 +0,0 @@ -export const openUrl = (url) => { - // return chrome.tabs.create(); - // return chrome.windows.create(); - if (url.indexOf('chrome://') === 0){ - return chrome.tabs.create({url:url}); - } - return window.open(url); -} \ No newline at end of file diff --git a/src/adapter/default/db.js b/src/adapter/default/db.js deleted file mode 100644 index 3f5c1db..0000000 --- a/src/adapter/default/db.js +++ /dev/null @@ -1,21 +0,0 @@ -import lsCache from './lscache' - -export default { - get(key, def = null) { - let data = lsCache.get(key) - return data ? data : def - }, - set(key, value, expiry = 0) { - return lsCache.set(key, value, expiry / 60) - }, - remove(key) { - return lsCache.remove(key) - }, - // 清理过期 - clear() { - return lsCache.flushExpired() - }, - getAllKey() { - return lsCache.getAllKey(); - } -} \ No newline at end of file diff --git a/src/adapter/default/lscache.js b/src/adapter/default/lscache.js deleted file mode 100644 index 7676a1d..0000000 --- a/src/adapter/default/lscache.js +++ /dev/null @@ -1,393 +0,0 @@ -/** - * lscache library - * Copyright (c) 2011, Pamela Fox - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * https://github.com/pamelafox/lscache - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* jshint undef:true, browser:true, node:true */ - -// Prefix for all lscache keys -var CACHE_PREFIX = 'lscache-'; - -// Suffix for the key name on the expiration items in localStorage -var CACHE_SUFFIX = '-cacheexpiration'; - -// expiration date radix (set to Base-36 for most space savings) -var EXPIRY_RADIX = 10; - -// time resolution in milliseconds -var expiryMilliseconds = 60 * 1000; -// ECMAScript max Date (epoch + 1e8 days) -var maxDate = calculateMaxDate(expiryMilliseconds); - -var cachedStorage; -var cachedJSON; -var cacheBucket = ''; -var warnings = false; - -// Determines if localStorage is supported in the browser; -// result is cached for better performance instead of being run each time. -// Feature detection is based on how Modernizr does it; -// it's not straightforward due to FF4 issues. -// It's not run at parse-time as it takes 200ms in Android. -function supportsStorage() { - var key = '__lscachetest__'; - var value = key; - - if (cachedStorage !== undefined) { - return cachedStorage; - } - - // some browsers will throw an error if you try to access local storage (e.g. brave browser) - // hence check is inside a try/catch - try { - if (!localStorage) { - return false; - } - } catch (ex) { - return false; - } - - try { - setItem(key, value); - removeItem(key); - cachedStorage = true; - } catch (e) { - // If we hit the limit, and we don't have an empty localStorage then it means we have support - if (isOutOfSpace(e) && localStorage.length) { - cachedStorage = true; // just maxed it out and even the set test failed. - } else { - cachedStorage = false; - } - } - return cachedStorage; -} - -// Check to set if the error is us dealing with being out of space -function isOutOfSpace(e) { - return e && ( - e.name === 'QUOTA_EXCEEDED_ERR' || - e.name === 'NS_ERROR_DOM_QUOTA_REACHED' || - e.name === 'QuotaExceededError' - ); -} - -// Determines if native JSON (de-)serialization is supported in the browser. -function supportsJSON() { - /*jshint eqnull:true */ - if (cachedJSON === undefined) { - cachedJSON = (window.JSON != null); - } - return cachedJSON; -} - -/** - * Returns a string where all RegExp special characters are escaped with a \. - * @param {String} text - * @return {string} - */ -function escapeRegExpSpecialCharacters(text) { - return text.replace(/[[\]{}()*+?.\\^$|]/g, '\\$&'); -} - -/** - * Returns the full string for the localStorage expiration item. - * @param {String} key - * @return {string} - */ -function expirationKey(key) { - return key + CACHE_SUFFIX; -} - -/** - * Returns the number of minutes since the epoch. - * @return {number} - */ -function currentTime() { - return Math.floor((new Date().getTime()) / expiryMilliseconds); -} - -/** - * Wrapper functions for localStorage methods - */ - -function getItem(key) { - return localStorage.getItem(CACHE_PREFIX + cacheBucket + key); -} - -function setItem(key, value) { - // Fix for iPad issue - sometimes throws QUOTA_EXCEEDED_ERR on setItem. - localStorage.removeItem(CACHE_PREFIX + cacheBucket + key); - localStorage.setItem(CACHE_PREFIX + cacheBucket + key, value); -} - -function removeItem(key) { - localStorage.removeItem(CACHE_PREFIX + cacheBucket + key); -} - -function eachKey(fn) { - var prefixRegExp = new RegExp('^' + CACHE_PREFIX + escapeRegExpSpecialCharacters(cacheBucket) + '(.*)'); - // Loop in reverse as removing items will change indices of tail - for (var i = localStorage.length - 1; i >= 0; --i) { - var key = localStorage.key(i); - key = key && key.match(prefixRegExp); - key = key && key[1]; - if (key && key.indexOf(CACHE_SUFFIX) < 0) { - fn(key, expirationKey(key)); - } - } -} - -function flushItem(key) { - var exprKey = expirationKey(key); - - removeItem(key); - removeItem(exprKey); -} - -function flushExpiredItem(key) { - var exprKey = expirationKey(key); - var expr = getItem(exprKey); - - if (expr) { - var expirationTime = parseInt(expr, EXPIRY_RADIX); - - // Check if we should actually kick item out of storage - if (currentTime() >= expirationTime) { - removeItem(key); - removeItem(exprKey); - return true; - } - } -} - -function warn(message, err) { - if (!warnings) return; - if (!('console' in window) || typeof window.console.warn !== 'function') return; - window.console.warn("lscache - " + message); - if (err) window.console.warn("lscache - The error was: " + err.message); -} - -function calculateMaxDate(expiryMilliseconds) { - return Math.floor(8.64e15 / expiryMilliseconds); -} - -let lscache = { - /** - * Stores the value in localStorage. Expires after specified number of minutes. - * @param {string} key - * @param {Object|string} value - * @param {number} time - * @return true if the value was inserted successfully - */ - set: function (key, value, time) { - if (!supportsStorage()) return false; - - // If we don't get a string value, try to stringify - // In future, localStorage may properly support storing non-strings - // and this can be removed. - - if (!supportsJSON()) return false; - try { - value = JSON.stringify(value); - } catch (e) { - // Sometimes we can't stringify due to circular refs - // in complex objects, so we won't bother storing then. - return false; - } - - try { - setItem(key, value); - } catch (e) { - if (isOutOfSpace(e)) { - // If we exceeded the quota, then we will sort - // by the expire time, and then remove the N oldest - var storedKeys = []; - var storedKey; - eachKey(function (key, exprKey) { - var expiration = getItem(exprKey); - if (expiration) { - expiration = parseInt(expiration, EXPIRY_RADIX); - } else { - // TODO: Store date added for non-expiring items for smarter removal - expiration = maxDate; - } - storedKeys.push({ - key: key, - size: (getItem(key) || '').length, - expiration: expiration - }); - }); - // Sorts the keys with oldest expiration time last - storedKeys.sort(function (a, b) { - return (b.expiration - a.expiration); - }); - - var targetSize = (value || '').length; - while (storedKeys.length && targetSize > 0) { - storedKey = storedKeys.pop(); - warn("Cache is full, removing item with key '" + key + "'"); - flushItem(storedKey.key); - targetSize -= storedKey.size; - } - try { - setItem(key, value); - } catch (e) { - // value may be larger than total quota - warn("Could not add item with key '" + key + "', perhaps it's too big?", e); - return false; - } - } else { - // If it was some other error, just give up. - warn("Could not add item with key '" + key + "'", e); - return false; - } - } - - // If a time is specified, store expiration info in localStorage - if (time) { - setItem(expirationKey(key), (currentTime() + time).toString(EXPIRY_RADIX)); - } else { - // In case they previously set a time, remove that info from localStorage. - removeItem(expirationKey(key)); - } - return true; - }, - - /** - * Retrieves specified value from localStorage, if not expired. - * @param {string} key - * @return {string|Object} - */ - get: function (key) { - if (!supportsStorage()) return null; - - // Return the de-serialized item if not expired - if (flushExpiredItem(key)) { - return null; - } - - // Tries to de-serialize stored value if its an object, and returns the normal value otherwise. - var value = getItem(key); - if (!value || !supportsJSON()) { - return value; - } - - try { - // We can't tell if its JSON or a string, so we try to parse - return JSON.parse(value); - } catch (e) { - // If we can't parse, it's probably because it isn't an object - return value; - } - }, - - /** - * Removes a value from localStorage. - * Equivalent to 'delete' in memcache, but that's a keyword in JS. - * @param {string} key - */ - remove: function (key) { - if (!supportsStorage()) return; - - flushItem(key); - }, - - /** - * Returns whether local storage is supported. - * Currently exposed for testing purposes. - * @return {boolean} - */ - supported: function () { - return supportsStorage(); - }, - - /** - * Flushes all lscache items and expiry markers without affecting rest of localStorage - */ - flush: function () { - if (!supportsStorage()) return; - - eachKey(function (key) { - flushItem(key); - }); - }, - - /** - * Flushes expired lscache items and expiry markers without affecting rest of localStorage - */ - flushExpired: function () { - if (!supportsStorage()) return; - - eachKey(function (key) { - flushExpiredItem(key); - }); - }, - - /** - * Appends CACHE_PREFIX so lscache will partition data in to different buckets. - * @param {string} bucket - */ - setBucket: function (bucket) { - cacheBucket = bucket; - }, - - /** - * Resets the string being appended to CACHE_PREFIX so lscache will use the default storage behavior. - */ - resetBucket: function () { - cacheBucket = ''; - }, - - /** - * @returns {number} The currently set number of milliseconds each time unit represents in - * the set() function's "time" argument. - */ - getExpiryMilliseconds: function () { - return expiryMilliseconds; - }, - - /** - * Sets the number of milliseconds each time unit represents in the set() function's - * "time" argument. - * Sample values: - * 1: each time unit = 1 millisecond - * 1000: each time unit = 1 second - * 60000: each time unit = 1 minute (Default value) - * 360000: each time unit = 1 hour - * @param {number} milliseconds - */ - setExpiryMilliseconds: function (milliseconds) { - expiryMilliseconds = milliseconds; - maxDate = calculateMaxDate(expiryMilliseconds); - }, - - /** - * Sets whether to display warnings when an item is removed from the cache or not. - */ - enableWarnings: function (enabled) { - warnings = enabled; - }, - - getAllKey() { - let all = [] - eachKey((key) => { - all.push(key) - }) - return all; - } -}; - -export default lscache; diff --git a/src/adapter/edge/manifest.json b/src/adapter/edge/manifest.json deleted file mode 100644 index 56a7f08..0000000 --- a/src/adapter/edge/manifest.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "__MSG_main_manifest_name__", - "description": "__MSG_main_manifest_description__", - "version": "##version##", - "author": "wo@baiy.org", - "offline_enabled": true, - "homepage_url": "https://github.com/baiy/Ctool", - "manifest_version": 2, - "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'", - "browser_action": { - "default_icon": "img/icon_chrome.png", - "default_title": "__MSG_main_manifest_default_title__", - "default_popup": "index.html" - }, - "background": { - "scripts": ["background.js"] - }, - "icons": { - "16": "img/icon_chrome.png", - "48": "img/icon_chrome.png", - "128": "img/icon_chrome.png" - }, - "permissions": [ - "clipboardWrite", - "clipboardRead", - "*://get.geojs.io/*", - "*://*.baiy.org/*" - ], - "commands": { - "panel": { - "description": "__MSG_main_manifest_commands_panel_description__", - "global": true - } - } -} diff --git a/src/adapter/firefox/background.js b/src/adapter/firefox/background.js deleted file mode 100644 index 8a9335d..0000000 --- a/src/adapter/firefox/background.js +++ /dev/null @@ -1,51 +0,0 @@ -let windowId = null; -// 打开独立窗口 -const panel = { - create() { - browser.windows.create({ - url: browser.runtime.getURL("tool.html"), - type: "popup", - }, (w) => { - browser.windows.update(w.id, { - width: 810, - height: 610 - }); - windowId = w.id - }) - }, - open() { - if (windowId === null) { - this.create() - } else { - browser.windows.get(windowId, (w) => { - if (!w) { - this.create() - } else { - browser.windows.update(windowId, {focused: true}) - } - }) - } - - }, - onRemoved(id) { - if (id === windowId) { - windowId = null; - } - } -} - -// 注册快捷键 -browser.commands.onCommand.addListener((command) => { - switch (command) { - case "panel": - panel.open() - break; - default: - return; - } -}) - -// 窗口关闭事件 -browser.windows.onRemoved.addListener((id) => { - panel.onRemoved(id); -}) diff --git a/src/adapter/firefox/helper.js b/src/adapter/firefox/helper.js deleted file mode 100644 index 7cd1be7..0000000 --- a/src/adapter/firefox/helper.js +++ /dev/null @@ -1,11 +0,0 @@ -export const openUrl = (url) => { - return browser.tabs.create({url:url}); -} - -export const getMessage = (messageName, values = {}, placeholders = []) => { - let substitutions = [] - placeholders.forEach((key) => { - substitutions.push((key in values) ? values[key] : "") - }) - return browser.i18n.getMessage(messageName, substitutions); -} diff --git a/src/adapter/firefox/manifest.json b/src/adapter/firefox/manifest.json deleted file mode 100644 index a5a4fb3..0000000 --- a/src/adapter/firefox/manifest.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "__MSG_main_manifest_name__", - "description": "__MSG_main_manifest_description__", - "version": "##version##", - "author": "wo@baiy.org", - "homepage_url": "https://github.com/baiy/Ctool", - "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'", - "manifest_version": 2, - "browser_action": { - "default_icon": "img/icon_chrome.png", - "default_title": "__MSG_main_manifest_default_title__", - "default_popup": "index.html" - }, - "default_locale": "zh_CN", - "background": { - "scripts": ["background.js"] - }, - "icons": { - "16": "img/icon_chrome.png", - "48": "img/icon_chrome.png", - "128": "img/icon_chrome.png" - }, - "permissions": [ - "clipboardWrite", - "clipboardRead", - "*://get.geojs.io/*", - "*://*.baiy.org/*" - ], - "commands": { - "_execute_browser_action": {}, - "panel": { - "description": "__MSG_main_manifest_commands_panel_description__" - } - } -} diff --git a/src/adapter/utools/db.js b/src/adapter/utools/db.js deleted file mode 100644 index ade25f1..0000000 --- a/src/adapter/utools/db.js +++ /dev/null @@ -1,69 +0,0 @@ -import _ from "lodash" - -const PREFIX = "_system_" - -const timestamp = () => { - return Math.ceil((Date.parse(new Date()) / 1000)) -} - -const encode = (value, expiry = 0) => { - return { - v: value, - e: expiry ? expiry + timestamp() : 0, - } -} - -const decode = (data) => { - if ( - !_.isObject(data) - || !("v" in data) - || !("e" in data) - ) { - return null; - } - return data -} - -const keyName = (key) => { - return `${PREFIX}${key}` -} - -export default { - get(key, def = null) { - let data = decode(window.utools.dbStorage.getItem(keyName(key))); - // 不存在/过期 - if (data === null || (data.e !== 0 && data.e < timestamp())) { - // 移除过期 - if (data !== null) { - this.remove(key) - } - return def; - } - return data.v - }, - set(key, value, expiry = 0) { - return window.utools.dbStorage.setItem( - keyName(key), - encode(value, _.toInteger(expiry)) - ) - }, - remove(key) { - return window.utools.dbStorage.removeItem(keyName(key)) - }, - // 清理过期 - clear() { - for (let {_id} of window.utools.db.allDocs(PREFIX)) { - let key = _id.replace(PREFIX, ""); - if (key) { - // 获取一次 过期会自动删除 - this.get(key) - } - } - return true; - }, - getAllKey() { - return window.utools.db.allDocs(PREFIX).map(({_id}) => { - return _id.replace(PREFIX, ""); - }) - } -} \ No newline at end of file diff --git a/src/adapter/utools/helper.js b/src/adapter/utools/helper.js deleted file mode 100644 index 5229eb2..0000000 --- a/src/adapter/utools/helper.js +++ /dev/null @@ -1,6 +0,0 @@ -export const openUrl = (url) => { - if ("utools" in window && "shellOpenExternal" in window.utools) { - return window.utools.shellOpenExternal(url) - } - return window.open(url); -} \ No newline at end of file diff --git a/src/adapter/utools/plugin.json b/src/adapter/utools/plugin.json deleted file mode 100644 index f90801c..0000000 --- a/src/adapter/utools/plugin.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "pluginName": "Ctool", - "description": "Ctool 程序开发常用工具", - "author": "baiy", - "homepage": "https://github.com/baiy/Ctool", - "main": "tool.html", - "version": "##version##", - "logo": "img/icon_utools.png", - "pluginSetting": { - "single": false - }, - "development": { - "main": "http://localhost:8081/tool.html" - }, - "features": "##features##" -} \ No newline at end of file diff --git a/src/components/bottom.vue b/src/components/bottom.vue deleted file mode 100644 index 000aac7..0000000 --- a/src/components/bottom.vue +++ /dev/null @@ -1,119 +0,0 @@ - - - - diff --git a/src/components/history.vue b/src/components/history.vue deleted file mode 100644 index aa882cd..0000000 --- a/src/components/history.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - diff --git a/src/components/inputBlock.vue b/src/components/inputBlock.vue deleted file mode 100644 index 66fa3ce..0000000 --- a/src/components/inputBlock.vue +++ /dev/null @@ -1,58 +0,0 @@ - - diff --git a/src/components/notice.vue b/src/components/notice.vue deleted file mode 100644 index 2536fcc..0000000 --- a/src/components/notice.vue +++ /dev/null @@ -1,186 +0,0 @@ - - - diff --git a/src/components/optionBlock.vue b/src/components/optionBlock.vue deleted file mode 100644 index 38542fe..0000000 --- a/src/components/optionBlock.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - - diff --git a/src/config.js b/src/config.js deleted file mode 100644 index 255b60b..0000000 --- a/src/config.js +++ /dev/null @@ -1,149 +0,0 @@ -// 工具缓存数据过期时间(秒) -const TOOL_DATA_EXPIRY = 3600 * 24 -// 徽章过期时间(天) -const BADGE_EXPIRY = 5 -// 分类徽章 -const BADGE_CATEGORY = [] -// 工具徽章 -const BADGE_TOOL = [] -// 默认常用工具 -const DEFAULT_COMMON_TOOL = [ - 'hash', 'encrypt', 'json', 'base64', 'url', 'timestamp', - 'qrCode', 'pinyin', 'ip', 'code', 'unicode', - 'text', 'randomString', 'diffs', -] - -const category = [ - {'name': 'common'}, - {'name': 'encryption'}, - {'name': 'conversion'}, - {'name': 'encoder_decoder'}, - {'name': 'check'}, - {'name': 'generate'}, - {'name': 'other'}, - {'name': 'yeahmao'}, - {'name': 'code_gen'}, -] - -const tool = [ - { - 'name': 'hash', - 'cat': ['encryption'] - }, - { - 'name': 'encrypt', - 'cat': ['encryption'] - }, - {'name': 'sign', 'cat': ['encryption', 'check']}, - {'name': 'base64', 'cat': ['encryption','encoder_decoder']}, - {'name': 'json', 'cat': ['conversion']}, - {'name': 'url', 'cat': ['encoder_decoder']}, - {'name': 'timestamp', 'cat': ['conversion']}, - {'name': 'qrCode', 'cat': ['generate']}, - {'name': 'barcode', 'cat': ['generate']}, - {'name': 'pinyin', 'cat': ['conversion']}, - {'name': 'ip', 'cat': ['other']}, - {'name': 'code', 'cat': ['other']}, - {'name': 'unicode', 'cat': ['encoder_decoder']}, - {'name': 'decimalConvert', 'cat': ['conversion']}, - {'name': 'regex', 'cat': ['check']}, - {'name': 'randomString', 'cat': ['generate']}, - {'name': 'serializeConversion', 'cat': ['conversion']}, - {'name': 'diffs', 'cat': ['check']}, - {'name': 'crontab', 'cat': ['check']}, - {'name': 'websocket', 'cat': ['other']}, - {'name': 'unit', 'cat': ['other']}, - {'name': 'time', 'cat': ['other']}, - {'name': 'uuid', 'cat': ['generate']}, - {'name': 'ascii', 'cat': ['conversion']}, - {'name': 'variableConversion', 'cat': ['conversion']}, - {'name': 'jwt', 'cat': ['encoder_decoder']}, - {'name': 'hexString', 'cat': ['conversion']}, - {'name': 'hex2base64', 'cat': ['conversion']}, - {'name': 'text', 'cat': ['other']}, - {'name': 'html', 'cat': ['encoder_decoder']}, - {'name': 'binary', 'cat': ['generate']}, - {'name': 'armConverter', 'cat': ['conversion']}, - {'name': 'bcrypt', 'cat': ['encryption','check']}, - {'name': 'ipcalc', 'cat': ['generate']}, - - // yeahmao - {'name': 'hexConvert', 'cat': ['yeahmao']}, - {'name': 'constFinder', 'cat': ['yeahmao']}, - // code_gen - {'name': 'codeGenJson', 'cat': ['code_gen']}, - {'name': 'codeGenJava', 'cat': ['code_gen']}, -] - -// 工具类功能配置 -const feature = { - qrCode: [ - {name: "generate", title: '生成'}, - {name: "reader", title: '解析'} - ] -} - -const utools = { - keyword: { - hash: ['md5', 'sha1', 'sha256', 'sha512', 'sm3'], - encrypt: ['AES', 'DES', 'RC4', 'Rabbit', 'TripleDes', 'sm2', 'sm4'], - jwt: ['jwtDecode'], - hexString: ['hex to string', 'string to hex', '十六进制转字符串', '字符串转十六机制'], - text: ['文本处理', '大小写转换', '中英文标点转换', '简繁转换', '字符替换', '字符统计', '行去重', '添加行号', '行排序', '过滤行首尾不可见字符', '过滤空行'], - sign: ['签名', '验签', 'rsa'], - binary: ['原码', '补码', '反码'], - armConverter: ['ARM', 'HEX'], - serializeConversion:["json","xml","yaml","php array","php serialize","properties"] - }, - cmds: { - timestamp: [ - { - "type": "regex", - // "label": "", //程序自动根据tool title填充 - "match": "/(^\\d{10}(?:\\d{3})?$)|(^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?$)/i", - "minLength": 10, - "maxLength": 25 - } - ], - qrCode: [ - { - "type": "over", - "minLength": 1, - "feature": 'generate' // 适配工具内功能 - - }, - { - "type": "regex", - "match": "/[a-zA-z]+://[^\\s]*/i", - "minLength": 8, - "feature": 'reader' // 适配工具内功能 - } - ], - ip: [ - { - "type": "regex", - "match": "/\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}/i", - "minLength": 7, - "maxLength": 15 - } - ], - unicode: [ - { - "type": "regex", - "match": "/\\\\u[0-9a-f]{4}/i", - "minLength": 6 - } - ] - } -} -module.exports = { - category, - tool, - feature, - utools, - toolDataExpiry: TOOL_DATA_EXPIRY, - badgeExpiry: BADGE_EXPIRY, - badgeCategory: BADGE_CATEGORY, - badgeTool: BADGE_TOOL, - defaultCommonTool: DEFAULT_COMMON_TOOL -} diff --git a/src/helper.js b/src/helper.js deleted file mode 100644 index 7be8b50..0000000 --- a/src/helper.js +++ /dev/null @@ -1,40 +0,0 @@ -import {v4 as uuidV4} from 'uuid'; -import {openUrl as chromiumOpenUrl} from './adapter/chromium/helper'; -import {openUrl as utoolsOpenUrl} from './adapter/utools/helper'; -import {openUrl as firefoxOpenUrl} from './adapter/firefox/helper'; - -export const env = (key) => { - return process['ctool'][key] ? process['ctool'][key] : ""; -}; - -export const isChrome = !!env('isChrome') -export const isEdge = !!env('isEdge') -export const isFirefox = !!env('isFirefox') -export const isChromium = !!env('isChromium') -export const isWeb = !!env('isWeb') -export const isUtools = !!env('isUtools') - -export const uuid = () => { - return uuidV4().toLowerCase(); -} - -export const openUrl = (url) => { - if (isChromium) { - return chromiumOpenUrl(url) - } - if (isUtools) { - return utoolsOpenUrl(url) - } - if (isFirefox) { - return firefoxOpenUrl(url) - } - return window.open(url); -}; - -export const version = env('version').trim() - -export const setDisplayMode = (mode) => { - mode = ['light', 'dark', 'auto'].includes(mode) ? mode : 'light' - console.log(`set display mode:${mode}`) - document.getElementsByTagName('html')[0].setAttribute('theme-mode', mode); -} diff --git a/src/i18n/.gitignore b/src/i18n/.gitignore deleted file mode 100644 index 0845e15..0000000 --- a/src/i18n/.gitignore +++ /dev/null @@ -1 +0,0 @@ -locales/build.js diff --git a/src/i18n/build.js b/src/i18n/build.js deleted file mode 100644 index f25c1fb..0000000 --- a/src/i18n/build.js +++ /dev/null @@ -1,148 +0,0 @@ -// 编译语言包 -const path = require('path'); -const fs = require('fs'); -const JSON5 = require('json5') -const _ = require('lodash') - -const LOCAL_LISTS = [ - {code: '_default', name: "默认(default)"}, - {code: "en", name: "English"}, - {code: 'zh_CN', name: "简体中文"} -] - -// 默认地区 -const DEFAULT_LOCALE = 'zh_CN' -// 为空展示地区 -const DEFAULT_SHOW_LOCALE = 'en' - -const codeToLocale = (code) => { - return code === "_default" ? DEFAULT_LOCALE : code; -} - -const placeholder = (message) => { - let placeholders = []; - const result = message.match(new RegExp('{.+?}', 'g')); - if (result !== null) { - result.forEach((item) => { - item = item.replace('{', '').replace('}', '') - if (!placeholders.includes(item)) { - placeholders.push(item) - } - }) - } - return placeholders -} - -const getLocale = (code) => { - const localeDir = path.join(__dirname, "locales/" + code) - if (!(fs.existsSync(localeDir) && fs.statSync(localeDir).isDirectory())) { - return null; - } - let locale = {} - fs.readdirSync(path.resolve(localeDir)).forEach((file) => { - if (file.indexOf('.i18n.json5') !== -1) { - let type = file.replace('.i18n.json5', ''); - let config = JSON5.parse(fs.readFileSync(path.join(__dirname, `locales/${code}/${file}`), 'utf-8')); - // 写入区域 - if (type === "main") { - locale[`${type}_locale`] = {message: code} - } - Object.keys(config).forEach(function (key) { - let placeholders = placeholder(config[key]) - locale[`${type}_${key}`] = { - message: config[key], - } - if (placeholders.length > 0) { - locale[`${type}_${key}`]["placeholders"] = placeholders - } - }); - } - }) - return locale; -} - -const getAllLocale = () => { - // 所有语言包 - let locales = { - lists: LOCAL_LISTS, - default_locale: DEFAULT_LOCALE, - default_show_locale: DEFAULT_SHOW_LOCALE, - detail: {} - } - fs.readdirSync(path.resolve(path.join(__dirname, "locales"))).forEach((code) => { - let locale = getLocale(code) - if (locale !== null) { - locales['detail'][code] = locale; - } - }) - checkAllLocale(locales) - return locales -} - - -const checkAllLocale = (locales) => { - /** - * 检查语言包是否完备 - * 确保中文/英文语言包是否一致 - */ - const zhKeys = Object.keys(locales['detail']['zh_CN']) - const enKeys = Object.keys(locales['detail']['en']) - - const zhDiff = _.difference(zhKeys, enKeys); - if (zhDiff.length > 0) { - throw new Error(`中/英文语言包存在差异[key](英文缺失):${zhDiff.join(',')}`) - } - const enDiff = _.difference(enKeys, zhKeys); - if (enDiff.length > 0) { - throw new Error(`中/英文语言包存在差异[key](中文缺失):${enDiff.join(',')}`) - } -} - - -const ALL_LOCALE = getAllLocale() - -module.exports = { - getLocales() { - return ALL_LOCALE; - }, - // 生成运行时语言包 - generate() { - fs.writeFileSync(path.join(__dirname, 'locales/build.js'), `export default ${JSON.stringify(ALL_LOCALE, null, 4)}`); - }, - getMessage(code, key) { - let locales = ALL_LOCALE['detail'] - let locale = codeToLocale(code) - let text = key; - if ((locale in locales) && (key in locales[locale])) { - text = locales[locale][key]['message'] - } else if (locale !== DEFAULT_SHOW_LOCALE) { - // 获取默认语言 - text = this.getMessage(DEFAULT_SHOW_LOCALE, key) - } - return text; - }, - translate(key, values = {}, code = DEFAULT_LOCALE) { - if (!key) return ''; - const text = this.getMessage(code, key) - - const matchRge = new RegExp('{.+?}', 'g') - const matchString = text.match(matchRge); - const replaceHash = {}; - // 获取语言包对应翻译内容 - let result = text; - - if (matchString) { - matchString.forEach((wildcard) => { - let key = wildcard.replace("{", "").replace("}", '') - if ((key in values) && !(wildcard in replaceHash)) { - replaceHash[wildcard] = values[key] - } - }); - } - - result = result.replace(matchRge, (replacer) => { - return replacer in replaceHash ? replaceHash[replacer] : replacer; - }); - return result; - } -} diff --git a/src/i18n/index.js b/src/i18n/index.js deleted file mode 100644 index f43db40..0000000 --- a/src/i18n/index.js +++ /dev/null @@ -1,111 +0,0 @@ -import VueI18n from 'vue-i18n' -import Vue from 'vue' -import {getMessage as chromiumGetMessage} from "../adapter/chromium/helper" -import {getMessage as firefoxGetMessage} from "../adapter/firefox/helper" -import {isChromium,isFirefox} from "../helper"; -import locales from "./locales/build.js"; - -Vue.use(VueI18n) - -// 区域列表 -export const LOCALE_LISTS = locales.lists -export const LOCALE_DETAIL = locales.detail -export const DEFAULT_LOCALE = locales.default_locale -export const DEFAULT_SHOW_LOCALE = locales.default_show_locale - -let currentLocale = ""; - -// 设置当前地区 -export const setCurrentLocale = (locale) => { - currentLocale = locale; -} - -const getMessage = (code, key) => { - let locale = code === "_default" ? DEFAULT_LOCALE : code; - let text = key; - if ((locale in LOCALE_DETAIL) && (key in LOCALE_DETAIL[locale])) { - text = LOCALE_DETAIL[locale][key]['message'] - } else if (locale !== DEFAULT_SHOW_LOCALE) { - // 获取默认语言 - text = getMessage(DEFAULT_SHOW_LOCALE, key) - } - return text; -} - -const translate = (code, key, values = {}) => { - if (!key) return ''; - - let locale = code === "_default" ? DEFAULT_LOCALE : code; - if (code === "_default" && (isChromium || isFirefox) ) { - let placeholders = [] - if ( - (locale in LOCALE_DETAIL) - && (key in LOCALE_DETAIL[locale]) - && ('placeholders' in LOCALE_DETAIL[locale][key]) - ) { - placeholders = LOCALE_DETAIL[locale][key]['placeholders'] - } - if (isChromium){ - return chromiumGetMessage(key, values, placeholders) - } - if (isFirefox){ - return firefoxGetMessage(key, values, placeholders) - } - } - - let text = getMessage(code, key); - - const matchRge = new RegExp('{.+?}', 'g') - const matchString = text.match(matchRge); - const replaceHash = {}; - // 获取语言包对应翻译内容 - let result = text; - - if (matchString) { - matchString.forEach((wildcard) => { - let key = wildcard.replace("{", "").replace("}", '') - if ((key in values) && !(wildcard in replaceHash)) { - replaceHash[wildcard] = values[key] - } - }); - } - - result = result.replace(matchRge, (replacer) => { - return replacer in replaceHash ? replaceHash[replacer] : replacer; - }); - return result; -} - - -window["__"] = (key, values = {}, locale = null) => { - locale = !locale ? currentLocale : locale - // values 必须是对象 - return translate( - (!locale ? currentLocale : locale), - key, - values - ) -} - -// 获取当前真实区域 -export const getCurrentLocale = () => { - return __('main_locale').toString(); -} - -export const i18n = new VueI18n({ - locale: 'zh_CN', - missing: (locale, key, vm, values) => { - if (Array.isArray(values) && values.length === 1) { - if (Array.isArray(values[0])) { - // 数组转对象表示法 - let temp = {} - for (let i = 0; i < values[0].length; i++) { - temp[i] = values[0][i] - } - return __(key, temp) - } - return __(key, values[0]) - } - return __(key) - } -}) diff --git a/src/i18n/locales/en/allMy.i18n.json5 b/src/i18n/locales/en/allMy.i18n.json5 deleted file mode 100644 index 3fc8089..0000000 --- a/src/i18n/locales/en/allMy.i18n.json5 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "convert": "Convert", - "stringEscape": "stringEscape", - "codeGenFrida": "codeGenFrida", - "codeGenX64dbgIdaVtable": "X64dbgIdaVtable", -} diff --git a/src/i18n/locales/en/armConverter.i18n.json5 b/src/i18n/locales/en/armConverter.i18n.json5 deleted file mode 100644 index 7a636ca..0000000 --- a/src/i18n/locales/en/armConverter.i18n.json5 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info_source": "Information Source: ", - "convert": "Convert", - "output": "Output", - "error": "error: {0}" -} diff --git a/src/i18n/locales/en/ascii.i18n.json5 b/src/i18n/locales/en/ascii.i18n.json5 deleted file mode 100644 index fe520ae..0000000 --- a/src/i18n/locales/en/ascii.i18n.json5 +++ /dev/null @@ -1,84 +0,0 @@ -{ - "convent": "Convent", - "input_prompt": "Multiple characters are separated by space", - "input_10": "DEC", - "input_16": "HEX", - "input_8": "OCT", - "input_2": "BIN", - "input_string": "String", - "clear": "Clear", - "code_table": "ASCII table", - "yes": "Y", - "no": "N", - "input_null_prompt": "Please enter the corresponding code", - "convent_error": "Conversion exception: {0}", - "is_show": "Is Show", - "description": "Description", - "code_nul": "Null char", - "code_soh": "Start of Heading", - "code_stx": "Start of Text", - "code_etx": "End of Text", - "code_eot": "End of Transmission", - "code_enq": "Enquiry", - "code_ack": "Acknowledgment", - "code_bel": "Bell", - "code_bs": "Back Space", - "code_tab": "Horizontal Tab", - "code_lf": "Line Feed", - "code_vt": "Vertical Tab", - "code_ff": "Form Feed", - "code_cr": "Carriage Return", - "code_so": "Shift Out / X-On", - "code_si": "Shift In / X-Off", - "code_dle": "Data Line Escape", - "code_dc1": "Device Control 1 (oft. XON)", - "code_dc2": "Device Control 2", - "code_dc3": "Device Control 3 (oft. XOFF)", - "code_dc4": "Device Control 4", - "code_nak": "Negative Acknowledgement", - "code_syn": "Synchronous Idle", - "code_etb": "End of Transmit Block", - "code_can": "Cancel", - "code_em": "End of Medium", - "code_sub": "Substitute", - "code_esc": "Escape", - "code_fs": "File Separator", - "code_gs": "Group Separator", - "code_rs": "Record Separator", - "code_us": "Unit Separator", - "code_del": "Delete", - "code_space": "Space", -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/i18n/locales/en/barcode.i18n.json5 b/src/i18n/locales/en/barcode.i18n.json5 deleted file mode 100644 index cdf0837..0000000 --- a/src/i18n/locales/en/barcode.i18n.json5 +++ /dev/null @@ -1,22 +0,0 @@ -{ - "content": "Content", - "background": "Background", - "line_color": "Line Color", - "bar_width": "Bar Width", - "height": "Height", - "margin": "Margin", - "show_text": "Show Text", - "hide": "Hide", - "top": "Top", - "bottom": "Bottom", - "text_align": "Text Align", - "left": "Left", - "center": "Center", - "right": "Right", - "font": "Font", - "bold": "Bold", - "italic": "Italic", - "font_size": "Size", - "text_margin": "Margin", - "invalid_content": "Invalid content" -} diff --git a/src/i18n/locales/en/base64.i18n.json5 b/src/i18n/locales/en/base64.i18n.json5 deleted file mode 100644 index 825805a..0000000 --- a/src/i18n/locales/en/base64.i18n.json5 +++ /dev/null @@ -1,24 +0,0 @@ -{ - "input": "Input", - "encode": "Encode", - "decode": "Decode", - "url_safe": "Url Safe", - "output": "Output", - "error": "error: {0}", - "hex_dump": "Hex Dump", - "setting": "Setting", - "hex_dump_show_mode": "Show Mode", - "hex_dump_format": "Format", - "hex_dump_caps": "Caps Lock", - "hex_dump_caps_lower": "Lower", - "hex_dump_caps_upper": "Upper", - "hex_dump_width": "Width", - "hex_dump_show_mode_hex": "Hex", - "hex_dump_show_mode_text": "Text", - "hex_dump_setting": "Hex Dump Setting", - "hex_dump_format_twos": "Twos", - "hex_dump_format_fours": "Fours", - "hex_dump_format_eights": "Eights", - "hex_dump_format_sixteens": "Sixteens", - "hex_dump_format_none": "None", -} diff --git a/src/i18n/locales/en/bcrypt.i18n.json5 b/src/i18n/locales/en/bcrypt.i18n.json5 deleted file mode 100644 index 14924e8..0000000 --- a/src/i18n/locales/en/bcrypt.i18n.json5 +++ /dev/null @@ -1,12 +0,0 @@ -{ - "generate": "Generate", - "password": "String", - "hash_password": "Hash", - "rounds": "Rounds", - "generate_submit": "Generate", - "check": "check", - "check_submit": "Check", - "check_result_success": "Right", - "check_result_error": "Wrong", - "rounds_range": "Rounds range [{0} - {1}]" -} diff --git a/src/i18n/locales/en/binary.i18n.json5 b/src/i18n/locales/en/binary.i18n.json5 deleted file mode 100644 index c0f1505..0000000 --- a/src/i18n/locales/en/binary.i18n.json5 +++ /dev/null @@ -1,8 +0,0 @@ -{ - "input": "Input", - "length": "{0} bit", - "true_form": "trueForm", - "inverse": "Inverse", - "complement": "Complement", - "error": "error: {0}" -} diff --git a/src/i18n/locales/en/code.i18n.json5 b/src/i18n/locales/en/code.i18n.json5 deleted file mode 100644 index 1df1a62..0000000 --- a/src/i18n/locales/en/code.i18n.json5 +++ /dev/null @@ -1,8 +0,0 @@ -{ - "more": "More Languages", - "indent": "Code Indent", - "indent_width": "Indent Space {0}", - "compress": "Compress", - "complete": "Operation Complete", - "error_prompt": "Error Prompt" -} diff --git a/src/i18n/locales/en/crontab.i18n.json5 b/src/i18n/locales/en/crontab.i18n.json5 deleted file mode 100644 index 41db036..0000000 --- a/src/i18n/locales/en/crontab.i18n.json5 +++ /dev/null @@ -1,14 +0,0 @@ -{ - "expression": "Expression", - "execute_time": "Execute Time", - "example": "Example", - "format": "Format", - "execute_time_list": "Execute Time List", - "no": "{0}: {1}", - "symbol": "Symbol", - "description": "Description", - "symbol_description_1": "any value", - "symbol_description_2": "value list separator", - "symbol_description_3": "range of values", - "symbol_description_4": "step values", -} diff --git a/src/i18n/locales/en/decimalConvert.i18n.json5 b/src/i18n/locales/en/decimalConvert.i18n.json5 deleted file mode 100644 index 7f3d840..0000000 --- a/src/i18n/locales/en/decimalConvert.i18n.json5 +++ /dev/null @@ -1,11 +0,0 @@ -{ - "input_placeholder": "Please enter the number to be converted", - "input": "Input", - "input_type_common": "Common", - "input_type_other": "Other", - "base": "Base-{0}", - "result": "Result {0}", - "alphabet": "64 Alphabet", - "reset": "Reset Default", - "alphabet_length_error": "The conversion alphabet must be 64 bits in length" -} diff --git a/src/i18n/locales/en/diffs.i18n.json5 b/src/i18n/locales/en/diffs.i18n.json5 deleted file mode 100644 index 8cefb77..0000000 --- a/src/i18n/locales/en/diffs.i18n.json5 +++ /dev/null @@ -1,5 +0,0 @@ -{ - "more": "More Languages", - "collapse":"Collapse Identical", - "beautify":"Beautify" -} diff --git a/src/i18n/locales/en/encrypt.i18n.json5 b/src/i18n/locales/en/encrypt.i18n.json5 deleted file mode 100644 index 9ac9b3e..0000000 --- a/src/i18n/locales/en/encrypt.i18n.json5 +++ /dev/null @@ -1,13 +0,0 @@ -{ - "input": "Input", - "password":"Password/Secret Key", - "encrypt": "Encrypt", - "decrypt":"Decrypt", - "generate_secret_key": "Generate Secret Key", - "output":"Output", - "public_key": "Public Key:", - "private_key":"Private Key:", - "secret_key_prompt": "Please save the key pair in time, the current key data cannot be restored after closing the dialog", - "close":"Close", - "failed": "Operation failed with error:{0}" -} diff --git a/src/i18n/locales/en/hash.i18n.json5 b/src/i18n/locales/en/hash.i18n.json5 deleted file mode 100644 index 15bac03..0000000 --- a/src/i18n/locales/en/hash.i18n.json5 +++ /dev/null @@ -1,4 +0,0 @@ -{ - "content": "Content", - "uppercase": "Uppercase", -} diff --git a/src/i18n/locales/en/hexString.i18n.json5 b/src/i18n/locales/en/hexString.i18n.json5 deleted file mode 100644 index b456be9..0000000 --- a/src/i18n/locales/en/hexString.i18n.json5 +++ /dev/null @@ -1,5 +0,0 @@ -{ - "input": "assemble", - "output": "Output", - "uppercase": "Uppercase", -} diff --git a/src/i18n/locales/en/html.i18n.json5 b/src/i18n/locales/en/html.i18n.json5 deleted file mode 100644 index 91c7b27..0000000 --- a/src/i18n/locales/en/html.i18n.json5 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "input": "Input", - "encode":"Encode", - "decode": "Decode", - "output":"Output" -} diff --git a/src/i18n/locales/en/ip.i18n.json5 b/src/i18n/locales/en/ip.i18n.json5 deleted file mode 100644 index 63bfd3d..0000000 --- a/src/i18n/locales/en/ip.i18n.json5 +++ /dev/null @@ -1,8 +0,0 @@ -{ - "input": "Please enter IP address", - "query":"Query", - "local": "Local IP", - "info_source":"IP information source", - "ok": "Query Success", - "error":"Query Fail:{0}" -} diff --git a/src/i18n/locales/en/ipcalc.i18n.json5 b/src/i18n/locales/en/ipcalc.i18n.json5 deleted file mode 100644 index 78152fc..0000000 --- a/src/i18n/locales/en/ipcalc.i18n.json5 +++ /dev/null @@ -1,27 +0,0 @@ -{ - ip: "IP Address", - format: "Input Format", - mask: "Subnet Mask", - ip_info: "IP Detail", - ip_info_long: "Long IP", - ip_info_ip8: "Octal IP", - ip_info_ip10: "Decimal IP", - ip_info_ip16: "Hexadecimal IP", - ip_info_ip2: "Binary IP", - mask_info: "Mask Detail", - mask_info_mask: "Subnet Mask", - mask_info_long: "Long Mask", - mask_info_opposite: "Opposite Mask", - mask_info_mask8: "Octal Mask", - mask_info_mask16: "Hexadecimal Mask", - mask_info_mask2: "Binary Mask", - network_info: "Network Detail", - network_export: "Export Available IP", - network_info_available: "Available IP Size", - network_info_size: "All IP Size", - network_info_base: "Base", - network_info_first: "First IP", - network_info_last: "Last IP", - network_info_broadcast: "Broadcast Address", - mask_set_title: "Calculate mask by number of available IP" -} diff --git a/src/i18n/locales/en/json.i18n.json5 b/src/i18n/locales/en/json.i18n.json5 deleted file mode 100644 index 5408b53..0000000 --- a/src/i18n/locales/en/json.i18n.json5 +++ /dev/null @@ -1,28 +0,0 @@ -{ - - "input": "Input", - "output": "Output", - "json_input_empty": "Please Enter Json Content", - "error": "Exception:{0}", - "format": "Format", - "compress": "Compress", - "escape": "Escape", - "clear_escape": "Unescape", - "add_escape":"Add Escape", - "unicode":"Unicode", - "unicode_to_zh": "Unicode->Zh", - "zh_to_unicode": "Zh->Unicode", - "complete": "Processing is complete", - "get": "Get Query", - "object":"To Object", - "csv": "CSV", - "table":"Table", - "path":"Path", - "add_quote":"Add Quote", - "column_name":"Column Name", - "json_type_json": "Json", - "json_type_keyed": "Keyed", - "json_type_array": "Array", - "json_type_column": "Column Array", - "inline": "Inline" -} diff --git a/src/i18n/locales/en/jwt.i18n.json5 b/src/i18n/locales/en/jwt.i18n.json5 deleted file mode 100644 index 55f6e3c..0000000 --- a/src/i18n/locales/en/jwt.i18n.json5 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "input": "Input", - "decode":"Decode", - "output": "Output", - "decode_fail":"Decode Fail:{0}" -} diff --git a/src/i18n/locales/en/main.i18n.json5 b/src/i18n/locales/en/main.i18n.json5 deleted file mode 100644 index 3545e81..0000000 --- a/src/i18n/locales/en/main.i18n.json5 +++ /dev/null @@ -1,90 +0,0 @@ -{ - // ui - "ui_setting": "Settings", - "ui_reset": "Reset", - "ui_views": "View", - "ui_load": "Loading", - "ui_close": "Close", - "ui_issues": "Issues Feedback", - "ui_open_full": "Open Full Screen Tab", - "ui_copy_text_ok": "Copy Success ^o^", - "ui_copy_image_ok": "Image Copied ^o^", - // views - "setting_language": "Language", - "common_tool": "Common Tool", - "unselected_tool": "Unselected Tool", - "keyboard_setting": "Setting Shortcuts", - "display_mode": "Theme", - "display_mode_light": "Light", - "display_mode_dark": "Dark", - "display_mode_auto": "Auto", - "copy_results_to_clipboard": "Copy results to clipboard", - "read_content_from_clipboard": "Read content from clipboard", - "read_clipboard_content_trim": "Read clipboard content trim", - "common_tool_setting": "Common Tool Settings", - "keyboard_firefox_1": "Need to manually set shortcuts", - "keyboard_firefox_2": "Open [Add-ons Manager(about:addons)],Click the setting button on the right side of [Manage your extension],Select [Manage Extension Shortcuts] to modify these shortcuts.", - "keyboard_firefox_3": "Operation Method", - "history": "History", - "history_clear": "Clear history", - "history_time": "Operation time", - "history_data": "Data", - "history_op": "Operation", - "history_null": "History not found", - // category - "category_common": "Common", - "category_encryption": "En/Decrypt", - "category_conversion": "Convert", - "category_encoder_decoder": "En/Decoder", - "category_check": "Validator", - "category_generate": "Generate", - "category_other": "Other", - "category_yeahmao": "yeahmao", - "category_code_gen": "code_gen", - // tool - "tool_hash": "Hash", - "tool_encrypt": "Encrypt & Decrypt", - "tool_sign": "Sign", - "tool_base64": "Base64", - "tool_json": "JSON", - "tool_url": "Url En/Decode", - "tool_timestamp": "Timestamp", - "tool_qrCode": "QR Code", - "tool_pinyin": "Chinese Pinyin", - "tool_ip": "Ip Query", - "tool_code": "Code Formatter ", - "tool_unicode": "Unicode", - "tool_decimalConvert": "Base Convert", - "tool_regex": "Regex", - "tool_randomString": "Random String", - "tool_serializeConversion": "Serialize Convert", - "tool_diffs": "Compare Text", - "tool_crontab": "Crontab", - "tool_websocket": "Websocket", - "tool_unit": "Unit Convert", - "tool_time": "Time Calculator", - "tool_uuid": "UUID", - "tool_ascii": "ASCII", - "tool_variableConversion": "Variable Name", - "tool_jwt": "JWT", - "tool_hexString": "Hex/String", - "tool_hex2base64": "Hex/Base64", - "tool_text": "Text", - "tool_html": "Html En/Decode", - "tool_binary": "trueForm/inverse/complement", - "tool_armConverter": "ARM/HEX", - "tool_bcrypt": "Bcrypt", - "tool_ipcalc": "Ipcalc", - "tool_hexConvert": "hexConvert", - "tool_codeGenJson": "codeGenJson", - "tool_codeGenJava": "codeGenJava", - "tool_constFinder": "constFinder", - // other - "css_main_category_item_style": "padding: 0 10px", - "editor_line_wrapping": "Line Wrapping", - // manifest - "manifest_name": "Ctool Commonly Used Developer Tools", - "manifest_description": "Commonly Used Developer Tools: Hash/Encrypt/Decrypt/Code Convert/Timestamp/Qrcode/IP Query/Code Formatter/Unicode/Regex/...", - "manifest_default_title": "Commonly Used Developer Tools", - "manifest_commands_panel_description": "Open Popup Tool Winodws" -} diff --git a/src/i18n/locales/en/pinyin.i18n.json5 b/src/i18n/locales/en/pinyin.i18n.json5 deleted file mode 100644 index 9d4303c..0000000 --- a/src/i18n/locales/en/pinyin.i18n.json5 +++ /dev/null @@ -1,12 +0,0 @@ -{ - "input": "Input", - "normal":"No Tone", - "tone": "Have Tone", - "abbr":"First Letter", - "output": "Output", - "delimiter_null":"No Delimiter", - "delimiter_space": "Space Delimiter", - "delimiter_1":"'-' Delimiter", - "delimiter_2": "'_' Delimiter", - "delimiter_3":"'.' Delimiter" -} diff --git a/src/i18n/locales/en/qrCode.i18n.json5 b/src/i18n/locales/en/qrCode.i18n.json5 deleted file mode 100644 index cad321f..0000000 --- a/src/i18n/locales/en/qrCode.i18n.json5 +++ /dev/null @@ -1,10 +0,0 @@ -{ - "generate_title": "Generate", - "generate_input": "Input", - "generate_error": "Generate Error:{0}", - "reader_title": "Reader", - "reader_input": "Please enter the QR code image url or click the button below to upload the image", - "reader_output": "Output", - "reader_error": "Reader Error:{0}", - "reader_parsing_failure": "Image parsing failure", -} diff --git a/src/i18n/locales/en/randomString.i18n.json5 b/src/i18n/locales/en/randomString.i18n.json5 deleted file mode 100644 index 93c4acb..0000000 --- a/src/i18n/locales/en/randomString.i18n.json5 +++ /dev/null @@ -1,13 +0,0 @@ -{ - "length": "Length", - "amount": "Number of strings", - "delimiter": "Delimiter", - "digital": "Digital", - "lowercase": "Lowercase", - "uppercase": "Uppercase", - "symbol": "Symbol", - "unique": "Unique", - "add_quote": "Add Quote", - "generate": "Generate", - "output": "Output" -} diff --git a/src/i18n/locales/en/regex.i18n.json5 b/src/i18n/locales/en/regex.i18n.json5 deleted file mode 100644 index 6814e6a..0000000 --- a/src/i18n/locales/en/regex.i18n.json5 +++ /dev/null @@ -1,14 +0,0 @@ -{ - "reference": "Reference", - "expression": "Expression", - "replace_content": "Replace Content", - "replace": "Replace", - "delete": "Delete", - "input": "Input", - "global": "Global", - "ignore_case": "Ignore Case", - "output": "Output", - "output_count": "{0} Total Matches", - "output_emty": "No match result, please check expression", - "error": "Error:{0}", -} diff --git a/src/i18n/locales/en/serializeConversion.i18n.json5 b/src/i18n/locales/en/serializeConversion.i18n.json5 deleted file mode 100644 index 116f014..0000000 --- a/src/i18n/locales/en/serializeConversion.i18n.json5 +++ /dev/null @@ -1,5 +0,0 @@ -{ - "input": "Input", - "output":"output", - "error": "Error:" -} diff --git a/src/i18n/locales/en/sign.i18n.json5 b/src/i18n/locales/en/sign.i18n.json5 deleted file mode 100644 index 6613a01..0000000 --- a/src/i18n/locales/en/sign.i18n.json5 +++ /dev/null @@ -1,19 +0,0 @@ -{ - "sign_data": "Sign Data/Verify data", - "verify_code": "Signature after Base64 encoding", - "sign": "Sign", - "verify": "Verify", - "generate_keypair": "Generate Keypair", - "public_key": "PEM Public Key", - "private_key": "PEM Private Key", - "keypair_type": "Type", - "keypair_length": "Length", - "generate_cancel": "Cancel", - "generate_in": "Generate in progress", - "generate": "Generate", - "error_sign_content_empty": "Sign Data/Private Key Required", - "error": "error:{0}", - "error_verify_content_empty": "Base64 Sign/Public Key Required", - "verify_fail": "Verify Fail", - "verify_ok": "Verify Success", -} diff --git a/src/i18n/locales/en/text.i18n.json5 b/src/i18n/locales/en/text.i18n.json5 deleted file mode 100644 index 91b7069..0000000 --- a/src/i18n/locales/en/text.i18n.json5 +++ /dev/null @@ -1,65 +0,0 @@ -{ - "content": "Text Content", - "input": "Input", - "resume": "Resume", - "case_conversion": "Case Converter", - "upper_all": "Upper", - "lower_all": "Lower", - "upper_line_start": "Upper Line Start", - "lower_line_start": "lower Line Start", - "upper_word_start": "Upper Word Start", - "lower_word_start": "Lower Word Start", - "punctuation": "Punctuation", - "cn": "CN", - "en": "EN", - "simplified_traditional": "Chinese", - "simplified": "Simplified", - "traditional": "Traditional", - "replace": "Replace", - "line_remove_duplicate": "Line Remove Duplicate", - "line_number": "Line Number", - "line_number_add": "Add", - "line_number_remove": "Remove", - "line_sort": "Line Sort", - "line_sort_asc": "Asc", - "line_sort_desc": "Desc", - "filter": "Filter", - "filter_trim": "(trim) Removes whitespace from both ends of a string", - "filter_blank_line": "Filter blank line", - "filter_all_br": "Filter newlines", - "stat": "Stat", - "stat_explain": "Explain", - "replace_search": "Search", - "replace_replace": "Replace", - "replace_regular": "Regular", - "replace_explain": "You can enter multiple lines, batch replace by line", - "cancel": "Cancel", - "submit": "Submit", - "string_length": "String", - "byte_length": "byte(utf8/gbk)", - "word_length": "Word", - "line_length": "Line", - "zh_length": "(Cn)Char/Punctuation", - "en_length": "(En)Char/Word/Punctuation", - "int_length": "(Number)Char/word", - "ok": "Complete", - "error": "Error:{0}", - "item": "Item", - "explain": "Explain", - "explain_byte_length_utf8_name": "byte utf8", - "explain_byte_length_utf8_info": "Cn Char Length:3", - "explain_byte_length_gbk_name": "byte gbk", - "explain_byte_length_gbk_info": "Cn Char Length:2", - "explain_string_length_name": "String Length", - "explain_string_length_info": "Cn/En Char Length:1 Line Break Length:0", - "explain_word_length_name": "Word", - "explain_word_length_info": "Cn+En Word+punctuation+Number word", - "explain_int_length_name": "Number Char", - "explain_int_length_info": "Number Char Count. For example:'a1024 1024' result:8", - "explain_int_word_length_name": "Number Word", - "explain_int_word_length_info": "For example:'a1024 1024' result:1", - "explain_blank_line_length_name": "Line Length", - "explain_blank_line_length_info": "Blank lines are also included in the number of lines", - "value": "value", - "stat_show": "Word:{0} UTF-8:{1} GBK:{2}" -} diff --git a/src/i18n/locales/en/time.i18n.json5 b/src/i18n/locales/en/time.i18n.json5 deleted file mode 100644 index 1d46991..0000000 --- a/src/i18n/locales/en/time.i18n.json5 +++ /dev/null @@ -1,30 +0,0 @@ -{ - "diff_tool": "Difference Calculator", - "and": "And", - "diff": "Diff", - "operation": "Time Operation", - "add": "Add", - "reduce": "Reduce", - "after": "After", - "is": "Is", - "error": "error:{0}", - "error_duration_length": "The year/month interval can only be an integer", - "current_time": "Current Time", - "current_date": "Current Date", - "current_month_date": "Current Month Date", - "current_year_date": "Current Year Date", - "year": "Year", - "month": "Month", - "week": "Week", - "day": "Day", - "hour": "Hour", - "minute": "Minute", - "second": "Second", - analyze: "Time Analyze", - analyze_year: "Year", - analyze_quarter: "Quarter", - analyze_month: "Month", - analyze_year_output: "{year}: Q{quarter},{weekOfYear} Week,{dayOfYear} Day,{hourOfYear} Hour,{minuteOfYear} Minute,{secondOfYear} Second", - analyze_quarter_output: "Q{quarter}:{weekOfQuarter} Week,{dayOfQuarter} Day,{hourOfQuarter} Hour,{minuteOfQuarter} Minute,{secondOfQuarter} Second", - analyze_month_output: "{month}:{weekOfMonth} Week,{hourOfMonth} Hour,{minuteOfMonth} Minute,{secondOfMonth} Second" -} diff --git a/src/i18n/locales/en/timestamp.i18n.json5 b/src/i18n/locales/en/timestamp.i18n.json5 deleted file mode 100644 index d36561f..0000000 --- a/src/i18n/locales/en/timestamp.i18n.json5 +++ /dev/null @@ -1,14 +0,0 @@ -{ - "input": "Input", - "get":"Get Current", - "normal_second": "Normal Second", - "normal_millisecond":"Normal Millisecond", - "unix_second": "Unix Timestamp Second", - "unix_millisecond":"Unix Timestamp Millisecond", - "output": "Output", - "copy":"Copy", - "error_format": "Input Format Error", - "error":"error:{0}", - "format": "Format", - "value":"Value" -} diff --git a/src/i18n/locales/en/unicode.i18n.json5 b/src/i18n/locales/en/unicode.i18n.json5 deleted file mode 100644 index 765de2e..0000000 --- a/src/i18n/locales/en/unicode.i18n.json5 +++ /dev/null @@ -1,15 +0,0 @@ -{ - "input": "Input", - "encode": "Encode", - "decode": "Decode", - "mode_default": "Unicode Default", - "mode_wide": "Unicode Wide", - "mode_wide_bracket": "Unicode Wide(Has Bracket)", - "mode_number": "Unicode Number", - "mode_html_10": "HTML-code(Base-10)", - "mode_html_16": "HTML-code(Base-16)", - "mode_css_16": "Css-code(Base-16)", - "ignore_ascii": "Ignore Ascii", - "output": "Output", - "error": "error:{0}" -} diff --git a/src/i18n/locales/en/unit.i18n.json5 b/src/i18n/locales/en/unit.i18n.json5 deleted file mode 100644 index 1c7e2e7..0000000 --- a/src/i18n/locales/en/unit.i18n.json5 +++ /dev/null @@ -1,190 +0,0 @@ -{ - "length": "Length", - "area": "Area", - "volume": "Volume", - "weight": "Weight", - "temperature": "Temperature", - "pressure": "Pressure", - "power": "Power", - "work": "Work", - "density": "Density", - "strength": "Strength", - "time": "Time", - "speed": "Speed", - "byte": "Byte", - "angle": "Angle", - "length_km": "kilometres", - "length_m": "metre", - "length_dm": "decimetre", - "length_cm": "centimetre", - "length_mm": "millimetre", - "length_um": "Micrometre", - "length_nm": "Nanometre", - "length_pm": "Picometre", - "length_ly": "Light year", - "length_au": "Astronomical unit", - "length_in": "Inch", - "length_ft": "Foot", - "length_yd": "Yard", - "length_mi": "Mile", - "length_nmi": "Nautical mile", - "length_fm": "Fathom", - "length_fur": "furlong", - "length_cn_li": "lǐ", - "length_cn_zhang": "zhàng", - "length_cn_chi": "chǐ", - "length_cn_cun": "cùn", - "length_cn_fen": "fēn", - "length_cn_li2": "lí", - "length_cn_hao": "háo", - "area_km_2": "Square kilometre", - "area_ha": "Hectare", - "area_are": "Hectare Are", - "area_m_2": "Square metre", - "area_dm_2": "square decimetre", - "area_cm_2": "Square centimetre", - "area_mm_2": "Square millimeter", - "area_acre": "Acre", - "area_mi_2": "Square Acre", - "area_yd_2": "Square Yard", - "area_ft_2": "Square foot", - "area_in_2": "Square inch", - "area_rd_2": "Square rod", - "area_cn_qing": "qǐng", - "area_cn_mu": "mǔ", - "area_cn_fen": "fēn", - "area_cn_chi_2": "Square chǐ", - "area_cn_cun_2": "Square cùn", - "volume_m_3": "Cubic metre", - "volume_dm_3": "cubic decimeter", - "volume_cm_3": "Cubic centimeter", - "volume_mm_3": "Cubic millimeter", - "volume_l": "Litre", - "volume_dl": "deciliter", - "volume_ml": "milliliter", - "volume_cl": "centiliter", - "volume_uL": "microliter", - "volume_hl": "hectolitre", - "volume_ft_3": "Cubic feet", - "volume_in_3": "Cubic inch", - "volume_yd_3": "Cubic yards", - "volume_acre_ft": "acre foot", - "volume_uk_gal": "Uk gallon", - "volume_us_gal": "Us gallon", - "volume_uk_oz": "Uk ounce", - "volume_us_oz": "Us ounce", - "weight_kg": "kilogram", - "weight_g": "gram", - "weight_mg": "Milligrams", - "weight_ug": "microgram", - "weight_t": "Ton", - "weight_q": "Quintal", - "weight_ct": "carat", - "weight_lb": "Pound", - "weight_oz": "ounce", - "weight_gr": "Grain", - "weight_lt": "British long ton", - "weight_st1": "US short ton", - "weight_st2": "Stone", - "weight_uk_cwt": "British long hundredweight", - "weight_us_cwt": "US short hundredweight", - "weight_dr": "Dram", - "weight_cn_dan": "dān", - "weight_cn_jin": "jīn", - "weight_cn_liang": "liǎng", - "weight_cn_qian": "qián", - "temperature_c": "Celsius", - "temperature_f": "Fahrenheit", - "temperature_k": "Kelvin", - "temperature_r": "Rankine_scale", - "temperature_re": "Réaumur_scale", - "pressure_pa": "Pascal", - "pressure_kpa": "KPa", - "pressure_hpa": "HPa", - "pressure_atm": "Standard atmospheric pressure", - "pressure_mmhg": "MmHg", - "pressure_in_hg": "Inch mercury", - "pressure_bar": "bar", - "pressure_mbar": "millibar", - "pressure_psf": "Pounds per square feet", - "pressure_psi": "Pounds per square inch", - "pressure_mmwg": "mmH2O", - "pressure_kgf_cm_2": "Kgf/square centimeter", - "pressure_kgf_m_2": "Kgf/Square meter", - "pressure_mpa": "MPa", - "power_w": "watt", - "power_kw": "kilowatt", - "power_hp": "Imperial horsepower", - "power_ps": "Metric horsepower", - "power_kg_m_s": "Kg·m/sec", - "power_kcal_s": "Kcal/s", - "power_btu_s": "British Thermal Unit/sec", - "power_ft_lb_s": "Feet·lbs/sec", - "power_j_s": "Joule/sec", - "power_n_m_s": "Newton m/s", - "work_j": "joule", - "work_kg_m": "Kg·m", - "work_ps_h": "Metric horsepower·hour", - "work_hp_h": "British horsepower·hour", - "work_kw_h": "Kilowatt hour", - "work_kw_h_": "Spend", - "work_cal": "Card", - "work_kcal": "Kcal", - "work_btu": "British Thermal Unit", - "work_ft_lb": "Foot pound", - "work_kj": "Kilojoule", - "density_kg_cm_3": "Kg/Cubic centimeter", - "density_kg_dm_3": "Kg/cubic decimeter", - "density_kg_m_3": "Kg/Cubic metre", - "density_g_cm_3": "g/Cubic centimeter", - "density_g_dm_3": "g/cubic decimeter", - "density_g_m_3": "g/Cubic metre", - "strength_n": "Newton", - "strength_kn": "Kilogram Newton", - "strength_kgf": "Kilogram force", - "strength_gf": "Keli 克力", - "strength_tf": "Metric ton force", - "strength_lbf": "Pound force", - "strength_kip": "Kilopound force", - "strength_dyn": "Dyne", - "time_yr": "year", - "time_week": "week", - "time_d": "Day", - "time_h": "Hour", - "time_min": "Minute", - "time_s": "Second", - "time_ms": "millisecond", - "time_us": "Microseconds", - "time_ns": "Nanosecond", - "speed_m_s": "metre/Sec", - "speed_km_s": "kilometer/Sec", - "speed_km_h": "kilometer/Hour", - "speed_c": "Speed of light", - "speed_mach": "Maher", - "speed_mile_h": "Mile/hour", - "speed_in_s": "Inch/Sec", - "byte_bit": "Bit", - "byte_b": "byte", - "byte_kb": "Kilobytes", - "byte_mb": "Megabyte", - "byte_gb": "Gigabytes", - "byte_tb": "Terabyte", - "byte_pb": "Petabytes", - "byte_eb": "Exabytes", - "angle_circle": "circle", - "angle_angle": "angle", - "angle_gon": "grade", - "angle_degree": "degree", - "angle_min": "Minute", - "angle_s": "Second", - "angle_rad": "radian", - "angle_mrad": "Milliradian", - "metric_system": "Metric System", - "imperial_units": "Imperial Units", - "chinese_units": "Chinese Units", - "angle_units": "Angle Units", - "radian_units": "Radian Units", - "all": "All" -} - - diff --git a/src/i18n/locales/en/url.i18n.json5 b/src/i18n/locales/en/url.i18n.json5 deleted file mode 100644 index f0ff092..0000000 --- a/src/i18n/locales/en/url.i18n.json5 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "input": "Input", - "encode": "Encode", - "decode": "Decode", - "output": "Output" -} diff --git a/src/i18n/locales/en/uuid.i18n.json5 b/src/i18n/locales/en/uuid.i18n.json5 deleted file mode 100644 index 64a3f7f..0000000 --- a/src/i18n/locales/en/uuid.i18n.json5 +++ /dev/null @@ -1,9 +0,0 @@ -{ - "amount": "Amount", - "delimiter": "Delimiter", - "hyphens": "Hyphens(-)", - "is_upper": "Upper", - "is_add_quote": "Add Quote", - "uint8_array": "Uint8 Array", - "output": "Output" -} diff --git a/src/i18n/locales/en/variableConversion.i18n.json5 b/src/i18n/locales/en/variableConversion.i18n.json5 deleted file mode 100644 index f5e7ee9..0000000 --- a/src/i18n/locales/en/variableConversion.i18n.json5 +++ /dev/null @@ -1,4 +0,0 @@ -{ - "input": "Input", - "input_placeholder":"A line of one" -} diff --git a/src/i18n/locales/en/websocket.i18n.json5 b/src/i18n/locales/en/websocket.i18n.json5 deleted file mode 100644 index d87a093..0000000 --- a/src/i18n/locales/en/websocket.i18n.json5 +++ /dev/null @@ -1,18 +0,0 @@ -{ - "connect": "Connect", - "close": "Close", - "send_content": "Send Content", - "log_content": "Request/Response/Log Content", - "send": "Send", - "copy": "Copy", - "clear": "Clear", - "you": "You", - "server": "Server", - "error_connect": "Ws is not connected yet, or the connection fails, please check", - "error_content": "Send content cannot be empty", - "connect_ok": "Connect Success", - "close_ok": "Close Success", - "error": "error:{0}", - "connect_start": "Connecting:{0}", - "close_start": "Closing:{0}" -} diff --git a/src/i18n/locales/zh_CN/allMy.i18n.json5 b/src/i18n/locales/zh_CN/allMy.i18n.json5 deleted file mode 100644 index ecb5973..0000000 --- a/src/i18n/locales/zh_CN/allMy.i18n.json5 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "convert": "转换", - "stringEscape": "字符串转义", - "codeGenFrida": "生成frida代码", - "codeGenX64dbgIdaVtable": "X64dbg断点虚表", -} diff --git a/src/i18n/locales/zh_CN/armConverter.i18n.json5 b/src/i18n/locales/zh_CN/armConverter.i18n.json5 deleted file mode 100644 index b66e82b..0000000 --- a/src/i18n/locales/zh_CN/armConverter.i18n.json5 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info_source": "数据来源:", - "convert": "转换", - "output": "输出", - "error": "错误: {0}" -} diff --git a/src/i18n/locales/zh_CN/ascii.i18n.json5 b/src/i18n/locales/zh_CN/ascii.i18n.json5 deleted file mode 100644 index 14cfbdb..0000000 --- a/src/i18n/locales/zh_CN/ascii.i18n.json5 +++ /dev/null @@ -1,51 +0,0 @@ -{ - "convent": "转换", - "input_prompt": "多个字符用空格分隔", - "input_10": "十进制", - "input_16": "十六进制", - "input_8": "八进制", - "input_2": "二进制", - "input_string": "字符串", - "clear": "清空", - "code_table": "编码表", - "yes": "是", - "no": "否", - "input_null_prompt": "请输入对应的待转换编码", - "convent_error": "转换异常: {0}", - "is_show": "是否显示", - "description": "描述", - "code_nul": "空字符(Null)", - "code_soh": "标题开始", - "code_stx": "本文开始", - "code_etx": "本文结束", - "code_eot": "传输结束", - "code_enq": "请求", - "code_ack": "确认回应", - "code_bel": "响铃", - "code_bs": "退格", - "code_tab": "水平定位符号", - "code_lf": "换行键", - "code_vt": "垂直定位符号", - "code_ff": "换页键", - "code_cr": "归位键", - "code_so": "取消变换(Shift out)", - "code_si": "启用变换(Shift in)", - "code_dle": "跳出数据通讯", - "code_dc1": "设备控制一(XON 启用软件速度控制)", - "code_dc2": "设备控制二", - "code_dc3": "设备控制三(XOFF 停用软件速度控制)", - "code_dc4": "设备控制四", - "code_nak": "确认失败回应", - "code_syn": "同步用暂停", - "code_etb": "区块传输结束", - "code_can": "取消", - "code_em": "连接介质中断", - "code_sub": "替换", - "code_esc": "跳出", - "code_fs": "文件分割符", - "code_gs": "组群分隔符", - "code_rs": "记录分隔符", - "code_us": "单元分隔符", - "code_del": "删除", - "code_space": "空格" -} diff --git a/src/i18n/locales/zh_CN/barcode.i18n.json5 b/src/i18n/locales/zh_CN/barcode.i18n.json5 deleted file mode 100644 index 0e85530..0000000 --- a/src/i18n/locales/zh_CN/barcode.i18n.json5 +++ /dev/null @@ -1,22 +0,0 @@ -{ - "content": "内容", - "background": "背景", - "line_color": "线条颜色", - "bar_width": "条码宽", - "height": "条码高", - "margin": "外边距", - "show_text": "文本显示", - "hide": "隐藏", - "top": "上方", - "bottom": "下方", - "text_align": "水平位置", - "left": "居左", - "center": "居中", - "right": "居右", - "font": "字体", - "bold": "粗体", - "italic": "斜体", - "font_size": "大小", - "text_margin": "外边距", - "invalid_content": "无效条码内容" -} diff --git a/src/i18n/locales/zh_CN/base64.i18n.json5 b/src/i18n/locales/zh_CN/base64.i18n.json5 deleted file mode 100644 index 6f569f0..0000000 --- a/src/i18n/locales/zh_CN/base64.i18n.json5 +++ /dev/null @@ -1,24 +0,0 @@ -{ - "input": "输入", - "encode": "编码", - "decode": "解码", - "url_safe": "Url 安全", - "output": "输出", - "error": "错误: {0}", - "hex_dump": "Hex Dump", - "setting": "配置", - "hex_dump_show_mode":"显示模式", - "hex_dump_format": "格式", - "hex_dump_caps": "大小写", - "hex_dump_caps_lower": "小写", - "hex_dump_caps_upper": "大写", - "hex_dump_width":"宽度", - "hex_dump_show_mode_hex": "十六进制", - "hex_dump_show_mode_text": "文本", - "hex_dump_setting": "十六进制显示配置", - "hex_dump_format_twos": "2位", - "hex_dump_format_fours": "4", - "hex_dump_format_eights": "8位", - "hex_dump_format_sixteens": "16位", - "hex_dump_format_none": "无分隔" -} diff --git a/src/i18n/locales/zh_CN/bcrypt.i18n.json5 b/src/i18n/locales/zh_CN/bcrypt.i18n.json5 deleted file mode 100644 index 55c427c..0000000 --- a/src/i18n/locales/zh_CN/bcrypt.i18n.json5 +++ /dev/null @@ -1,12 +0,0 @@ -{ - "generate": "生成", - "password": "明文(String)", - "hash_password": "哈希(Hash)", - "rounds": "Rounds", - "generate_submit": "生成", - "check": "校验", - "check_submit": "校验", - "check_result_success": "正确", - "check_result_error": "错误", - "rounds_range": "Rounds 范围 [{0} - {1}]" -} diff --git a/src/i18n/locales/zh_CN/binary.i18n.json5 b/src/i18n/locales/zh_CN/binary.i18n.json5 deleted file mode 100644 index 5ac7f48..0000000 --- a/src/i18n/locales/zh_CN/binary.i18n.json5 +++ /dev/null @@ -1,8 +0,0 @@ -{ - "input": "输入", - "length": "{0} 位", - "true_form": "原码", - "inverse": "反码", - "complement": "补码", - "error": "错误: {0}" -} diff --git a/src/i18n/locales/zh_CN/code.i18n.json5 b/src/i18n/locales/zh_CN/code.i18n.json5 deleted file mode 100644 index 6fda308..0000000 --- a/src/i18n/locales/zh_CN/code.i18n.json5 +++ /dev/null @@ -1,8 +0,0 @@ -{ - "more": "更多语言", - "indent": "代码缩进", - "indent_width": "缩进 空格 {0}", - "compress": "压缩", - "complete": "操作完成", - "error_prompt": "错误提示" -} diff --git a/src/i18n/locales/zh_CN/crontab.i18n.json5 b/src/i18n/locales/zh_CN/crontab.i18n.json5 deleted file mode 100644 index a340f82..0000000 --- a/src/i18n/locales/zh_CN/crontab.i18n.json5 +++ /dev/null @@ -1,14 +0,0 @@ -{ - "expression": "表达式", - "execute_time": "最近执行时间", - "example": "例子", - "format": "格式", - "execute_time_list": "最近10次执行时间", - "no": "第{0}次: {1}", - "symbol": "特殊符号", - "description": "描述", - "symbol_description_1": "代表任何时刻都接受的意思。举例来说,范例一内那个日、月、周都是*,就代表着不论何月、何日的礼拜几的12:00都执行后续命令的意思。", - "symbol_description_2": "代表分隔时段的意思。举例来说,如果要执行的工作是3:00与6:00时,就会是:0 3,6 * * * command时间还是有五列,不过第二列是 3,6 ,代表3与6都适用", - "symbol_description_3": "代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:20 8-12 * * * command仔细看到第二列变成8-12.代表 8,9,10,11,12 都适用的意思", - "symbol_description_4": "那个n代表数字,即是每隔n单位间隔的意思,例如每五分钟进行一次,则:*/5 * * * * command用*与/5来搭配,也可以写成0-59/5,意思相同", -} diff --git a/src/i18n/locales/zh_CN/decimalConvert.i18n.json5 b/src/i18n/locales/zh_CN/decimalConvert.i18n.json5 deleted file mode 100644 index 8924c5e..0000000 --- a/src/i18n/locales/zh_CN/decimalConvert.i18n.json5 +++ /dev/null @@ -1,11 +0,0 @@ -{ - "input_placeholder": "请输入待转换数字", - "input": "转换数字", - "input_type_common": "常用", - "input_type_other": "其他", - "base": "{0} 进制", - "result": "转换结果 {0}", - "alphabet": "64位字母表", - "reset": "恢复默认", - "alphabet_length_error": "转换字母表必须是64位长度" -} diff --git a/src/i18n/locales/zh_CN/diffs.i18n.json5 b/src/i18n/locales/zh_CN/diffs.i18n.json5 deleted file mode 100644 index 3152c7d..0000000 --- a/src/i18n/locales/zh_CN/diffs.i18n.json5 +++ /dev/null @@ -1,5 +0,0 @@ -{ - "more": "更多语言", - "collapse":"折叠相同", - "beautify":"格式化" -} diff --git a/src/i18n/locales/zh_CN/encrypt.i18n.json5 b/src/i18n/locales/zh_CN/encrypt.i18n.json5 deleted file mode 100644 index 71d8078..0000000 --- a/src/i18n/locales/zh_CN/encrypt.i18n.json5 +++ /dev/null @@ -1,13 +0,0 @@ -{ - "input": "输入", - "password":"密码/密钥", - "encrypt": "加密", - "decrypt":"解密", - "generate_secret_key": "生成密钥对", - "output":"输出", - "public_key": "公钥:", - "private_key":"私钥:", - "secret_key_prompt": "请及时保存秘钥对, 关闭对话框后无法恢复当前秘钥数据", - "close":"关闭", - "failed": "操作失败:{0}" -} diff --git a/src/i18n/locales/zh_CN/hash.i18n.json5 b/src/i18n/locales/zh_CN/hash.i18n.json5 deleted file mode 100644 index cd33156..0000000 --- a/src/i18n/locales/zh_CN/hash.i18n.json5 +++ /dev/null @@ -1,4 +0,0 @@ -{ - "content": "内容", - "uppercase": "大写字母", -} diff --git a/src/i18n/locales/zh_CN/hexString.i18n.json5 b/src/i18n/locales/zh_CN/hexString.i18n.json5 deleted file mode 100644 index c099952..0000000 --- a/src/i18n/locales/zh_CN/hexString.i18n.json5 +++ /dev/null @@ -1,5 +0,0 @@ -{ - "input": "输入", - "output": "输出", - "uppercase": "大写字母", -} diff --git a/src/i18n/locales/zh_CN/html.i18n.json5 b/src/i18n/locales/zh_CN/html.i18n.json5 deleted file mode 100644 index 015c1a0..0000000 --- a/src/i18n/locales/zh_CN/html.i18n.json5 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "input": "输入", - "encode":"编码", - "decode": "解码", - "output":"输出" -} diff --git a/src/i18n/locales/zh_CN/ip.i18n.json5 b/src/i18n/locales/zh_CN/ip.i18n.json5 deleted file mode 100644 index b74f48a..0000000 --- a/src/i18n/locales/zh_CN/ip.i18n.json5 +++ /dev/null @@ -1,8 +0,0 @@ -{ - "input": "请输入IP地址", - "query":"查询", - "local": "本地IP", - "info_source":"IP 信息来源", - "ok": "查询成功", - "error":"查询异常:{0}" -} diff --git a/src/i18n/locales/zh_CN/ipcalc.i18n.json5 b/src/i18n/locales/zh_CN/ipcalc.i18n.json5 deleted file mode 100644 index bfb13e2..0000000 --- a/src/i18n/locales/zh_CN/ipcalc.i18n.json5 +++ /dev/null @@ -1,27 +0,0 @@ -{ - format: "输入格式", - ip: "IP地址", - mask: "掩码", - ip_info: "IP 信息", - ip_info_long: "整型IP", - ip_info_ip8: "点分八进制IP", - ip_info_ip10: "点分十进制IP", - ip_info_ip16: "点分十六进制IP", - ip_info_ip2: "点分二进制IP", - mask_info: "掩码信息", - mask_info_mask: "子网掩码", - mask_info_long: "整型掩码", - mask_info_opposite: "反掩码", - mask_info_mask8: "点分八进制掩码", - mask_info_mask16: "点分十六进制掩码", - mask_info_mask2: "点分二进制掩码", - network_info: "网络信息", - network_export: "导出可用IP", - network_info_available: "可用数量", - network_info_size: "全部数量", - network_info_base: "网络", - network_info_first: "第一个IP", - network_info_last: "最后一个IP", - network_info_broadcast: "广播地址", - mask_set_title: "通过可用IP数量设置掩码" -} diff --git a/src/i18n/locales/zh_CN/json.i18n.json5 b/src/i18n/locales/zh_CN/json.i18n.json5 deleted file mode 100644 index 4cc3775..0000000 --- a/src/i18n/locales/zh_CN/json.i18n.json5 +++ /dev/null @@ -1,27 +0,0 @@ -{ - "input": "输入", - "output": "输出", - "json_input_empty": "请输入JSON内容", - "error":"异常:{0}", - "format": "格式化", - "compress":"压缩", - "escape": "转义", - "clear_escape":"移除转义", - "add_escape":"添加转义", - "unicode":"Unicode", - "unicode_to_zh": "Unicode转中文", - "zh_to_unicode":"中文转Unicode", - "complete": "处理完成", - "get": "Get参数", - "object":"转实体类", - "csv": "CSV", - "table":"Table", - "path":"Path", - "add_quote":"添加引号", - "column_name":"列名", - "json_type_json": "Json", - "json_type_keyed": "关联对象", - "json_type_array": "数组", - "json_type_column": "列数组", - "inline": "内联(inline)", -} diff --git a/src/i18n/locales/zh_CN/jwt.i18n.json5 b/src/i18n/locales/zh_CN/jwt.i18n.json5 deleted file mode 100644 index f7f4b1d..0000000 --- a/src/i18n/locales/zh_CN/jwt.i18n.json5 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "input": "输入", - "decode":"解码", - "output": "输出", - "decode_fail":"解码失败:{0}" -} diff --git a/src/i18n/locales/zh_CN/main.i18n.json5 b/src/i18n/locales/zh_CN/main.i18n.json5 deleted file mode 100644 index 0b0e47a..0000000 --- a/src/i18n/locales/zh_CN/main.i18n.json5 +++ /dev/null @@ -1,90 +0,0 @@ -{ - // ui - "ui_setting": "设置", - "ui_reset": "重置", - "ui_views": "查看", - "ui_load": "加载", - "ui_close": "关闭", - "ui_issues": "问题反馈", - "ui_open_full": "打开全屏窗口", - "ui_copy_text_ok": "复制成功 ^o^", - "ui_copy_image_ok": "图片已复制 ^o^", - // 界面 - "setting_language": "语言", - "common_tool": "常用工具", - "unselected_tool": "未选择工具", - "keyboard_setting": "快捷键设置", - "display_mode": "主题", - "display_mode_light": "浅色", - "display_mode_dark": "深色", - "display_mode_auto": "自动", - "copy_results_to_clipboard": "自动复制结果到剪贴板", - "read_content_from_clipboard": "自动读取剪贴板内容", - "read_clipboard_content_trim": "读取剪贴板内容过滤首尾不可见字符", - "common_tool_setting": "常用工具设置", - "keyboard_firefox_1": "请手动设置快捷键", - "keyboard_firefox_2": "请打开附加组件管理器(about:addons),点击“管理扩展程序”右侧的设置按钮,选择“管理扩展快捷键”来修改这些快捷键。", - "keyboard_firefox_3": "操作方法", - "history": "历史记录", - "history_clear": "清空历史记录", - "history_time": "操作时间", - "history_data": "数据", - "history_op": "操作", - "history_null": "暂无历史记录", - // 分类 - "category_common": "常用", - "category_encryption": "加解密", - "category_conversion": "转换", - "category_encoder_decoder": "编解码", - "category_check": "校验", - "category_generate": "生成", - "category_other": "其他", - "category_yeahmao": "夜猫逐梦", - "category_code_gen": "代码生成器", - // 工具 - "tool_hash": "哈希(hash)", - "tool_encrypt": "加密/解密", - "tool_sign": "签名/验签", - "tool_base64": "BASE64编码", - "tool_json": "JSON工具", - "tool_url": "URL编码", - "tool_timestamp": "时间戳", - "tool_qrCode": "二维码", - "tool_pinyin": "汉字转拼音", - "tool_ip": "IP地址查询", - "tool_code": "代码格式化", - "tool_unicode": "Unicode", - "tool_decimalConvert": "进制转换", - "tool_regex": "正则表达式", - "tool_randomString": "随机字符生成", - "tool_serializeConversion": "序列化转换", - "tool_diffs": "文本比对", - "tool_crontab": "Crontab", - "tool_websocket": "Websocket", - "tool_unit": "单位换算", - "tool_time": "时间计算器", - "tool_uuid": "UUID生成", - "tool_ascii": "ASCII", - "tool_variableConversion": "变量名", - "tool_jwt": "JWT解码", - "tool_hexString": "Hex/String", - "tool_hex2base64": "Hex/Base64", - "tool_text": "文本处理", - "tool_html": "Html编码", - "tool_binary": "原码/反码/补码", - "tool_armConverter": "ARM/HEX", - "tool_bcrypt": "Bcrypt", - "tool_ipcalc": "IP网络计算器", - "tool_hexConvert": "字节转换", - "tool_codeGenJson": "代码生成Json", - "tool_codeGenJava": "代码生成Java", - "tool_constFinder": "常量查找", - // 其他 - "css_main_category_item_style": "padding: 0 20px", - "editor_line_wrapping": "自动换行", - // manifest - "manifest_name": "Ctool 程序开发常用工具", - "manifest_description": "程序开发常用工具,哈希/加解密/编码转换/时间戳/二维码/拼音/IP查询/代码优化/Unicode/正则等...", - "manifest_default_title": "常用开发工具", - "manifest_commands_panel_description": "打开独立工具窗口", -} diff --git a/src/i18n/locales/zh_CN/pinyin.i18n.json5 b/src/i18n/locales/zh_CN/pinyin.i18n.json5 deleted file mode 100644 index f1f4f6b..0000000 --- a/src/i18n/locales/zh_CN/pinyin.i18n.json5 +++ /dev/null @@ -1,12 +0,0 @@ -{ - "input": "输入", - "normal":"无声调", - "tone": "有声调", - "abbr":"首字母", - "output": "输出", - "delimiter_null":"无分隔符", - "delimiter_space": "空格分隔", - "delimiter_1":"'-'中划线分隔", - "delimiter_2": "'_'下划线分隔", - "delimiter_3":"'.'点分隔" -} diff --git a/src/i18n/locales/zh_CN/qrCode.i18n.json5 b/src/i18n/locales/zh_CN/qrCode.i18n.json5 deleted file mode 100644 index 5f86474..0000000 --- a/src/i18n/locales/zh_CN/qrCode.i18n.json5 +++ /dev/null @@ -1,10 +0,0 @@ -{ - "generate_title": "二维码生成", - "generate_input": "输入", - "generate_error": "生成错误:{0}", - "reader_title": "二维码解析", - "reader_input": "请输入二维码图片地址或点击下方按钮上传图片", - "reader_output": "输出", - "reader_error": "解析错误:{0}", - "reader_parsing_failure": "图片解析失败", -} diff --git a/src/i18n/locales/zh_CN/randomString.i18n.json5 b/src/i18n/locales/zh_CN/randomString.i18n.json5 deleted file mode 100644 index de9b6f5..0000000 --- a/src/i18n/locales/zh_CN/randomString.i18n.json5 +++ /dev/null @@ -1,13 +0,0 @@ -{ - "length": "长度", - "amount":"数量", - "delimiter": "分隔符", - "digital":"数字", - "lowercase": "小写字母", - "uppercase":"大写字母", - "symbol": "特殊符号", - "unique":"唯一", - "add_quote": "添加引号", - "generate":"生成", - "output": "输出" -} diff --git a/src/i18n/locales/zh_CN/regex.i18n.json5 b/src/i18n/locales/zh_CN/regex.i18n.json5 deleted file mode 100644 index 0268492..0000000 --- a/src/i18n/locales/zh_CN/regex.i18n.json5 +++ /dev/null @@ -1,14 +0,0 @@ -{ - "reference": "参考", - "expression": "正则表达式", - "replace_content": "替换内容", - "replace": "替换", - "delete": "删除", - "input": "输入待处理内容", - "global": "全局搜索", - "ignore_case": "忽略大小写", - "output": "输出", - "output_count": "共 {0} 个匹配项", - "output_emty": "没有匹配结果,请检查正则", - "error": "错误:{0}", -} diff --git a/src/i18n/locales/zh_CN/serializeConversion.i18n.json5 b/src/i18n/locales/zh_CN/serializeConversion.i18n.json5 deleted file mode 100644 index aa3560a..0000000 --- a/src/i18n/locales/zh_CN/serializeConversion.i18n.json5 +++ /dev/null @@ -1,5 +0,0 @@ -{ - "input": "输入", - "output":"输出", - "error": "错误:{0}" -} diff --git a/src/i18n/locales/zh_CN/sign.i18n.json5 b/src/i18n/locales/zh_CN/sign.i18n.json5 deleted file mode 100644 index cee7c8a..0000000 --- a/src/i18n/locales/zh_CN/sign.i18n.json5 +++ /dev/null @@ -1,19 +0,0 @@ -{ - "sign_data": "待签名内容/验签数据", - "verify_code": "Base64编码后签名", - "sign": "签名", - "verify": "验签", - "generate_keypair": "生成公钥/私钥", - "public_key": "PEM格式公钥", - "private_key": "PEM格式私钥", - "keypair_type": "密钥格式", - "keypair_length": "密钥长度", - "generate_cancel": "取消", - "generate_in": "生成中", - "generate": "生成", - "error_sign_content_empty": "待签名内容/PEM格式私钥 必填", - "error": "错误:{0}", - "error_verify_content_empty": "Base64编码后签名/PEM格式公钥 必填", - "verify_fail": "验签失败", - "verify_ok": "验签成功", -} diff --git a/src/i18n/locales/zh_CN/text.i18n.json5 b/src/i18n/locales/zh_CN/text.i18n.json5 deleted file mode 100644 index 1bd014f..0000000 --- a/src/i18n/locales/zh_CN/text.i18n.json5 +++ /dev/null @@ -1,65 +0,0 @@ -{ - "content": "文本内容", - "input": "输入", - "resume": "恢复", - "case_conversion": "大小写转换", - "upper_all": "全部大写", - "lower_all": "全部小写", - "upper_line_start": "行首大写", - "lower_line_start": "行首小写", - "upper_word_start": "词首大写", - "lower_word_start": "词首小写", - "punctuation": "中英标点转换", - "cn": "中文", - "en": "英文", - "simplified_traditional": "简繁转换", - "simplified": "简体", - "traditional": "繁体", - "replace": "替换", - "line_remove_duplicate": "行去重", - "line_number": "行号", - "line_number_add": "添加", - "line_number_remove": "移除", - "line_sort": "行排序", - "line_sort_asc": "升序", - "line_sort_desc": "降序", - "filter": "过滤", - "filter_trim": "过滤行首尾不可见字符(trim)", - "filter_blank_line": "过滤多余空行", - "filter_all_br": "过滤换行符", - "stat": "统计", - "stat_explain": "统计说明", - "replace_search": "查找", - "replace_replace": "替换", - "replace_regular": "正则", - "replace_explain": "可输入多行, 按行进行批量替换", - "cancel": "取消", - "submit": "提交", - "string_length": "字符数", - "byte_length": "字节数(utf8/gbk)", - "word_length": "字数", - "line_length": "行数", - "zh_length": "(中文)字数/标点", - "en_length": "(英文)字母/单词/标点", - "int_length": "(数字)字符/单词", - "ok": "完成", - "error": "错误:{0}", - "item": "项目", - "explain": "说明", - "explain_byte_length_utf8_name": "字节数utf8", - "explain_byte_length_utf8_info": "中文字符计3个长度", - "explain_byte_length_gbk_name": "字节数gbk", - "explain_byte_length_gbk_info": "中文字符计2个长度", - "explain_string_length_name": "字符数", - "explain_string_length_info": "中/英文字符均计1个长度 换行符不计入长度", - "explain_word_length_name": "字数", - "explain_word_length_info": "中文字数+英文单词数+中文标点数+英文标点数+数字单词数", - "explain_int_length_name": "数字字符", - "explain_int_length_info": "统计单个数字出现次数 例如:'a1024 1024' 结果为:8", - "explain_int_word_length_name": "数字单词", - "explain_int_word_length_info": "例如:'a1024 1024' 结果为:1 其中:'a1024' 为英文单词 '1024' 为数字单词", - "explain_blank_line_length_name": "行数", - "explain_blank_line_length_info": "空行也会计入行数", - "value": "值", - "stat_show": "字数:{0} UTF-8:{1} GBK:{2}", -} diff --git a/src/i18n/locales/zh_CN/time.i18n.json5 b/src/i18n/locales/zh_CN/time.i18n.json5 deleted file mode 100644 index 2789b81..0000000 --- a/src/i18n/locales/zh_CN/time.i18n.json5 +++ /dev/null @@ -1,30 +0,0 @@ -{ - "diff_tool": "差值计算器", - "and": "与", - "diff": "相差", - "operation": "时间操作", - "add": "添加", - "reduce": "减少", - "after": "后", - "is": "为", - "error": "错误:{0}", - "error_duration_length": "年/月间隔只能是整数", - "current_time": "当前时间", - "current_date": "当前日期", - "current_month_date": "当月日期", - "current_year_date": "当年日期", - "year": "年", - "month": "月", - "week": "周", - "day": "日", - "hour": "小时", - "minute": "分钟", - "second": "秒", - analyze: "时间分析", - analyze_year: "年", - analyze_quarter: "季度", - analyze_month: "月", - analyze_year_output: "{year}年:{quarter}季度,{weekOfYear}周,{dayOfYear}天,{hourOfYear}小时,{minuteOfYear}分钟,{secondOfYear}秒", - analyze_quarter_output: "{quarter}季度:{weekOfQuarter}周,{dayOfQuarter}天,{hourOfQuarter}小时,{minuteOfQuarter}分钟,{secondOfQuarter}秒", - analyze_month_output: "{month}月:{weekOfMonth}周,{hourOfMonth}小时,{minuteOfMonth}分钟,{secondOfMonth}秒" -} diff --git a/src/i18n/locales/zh_CN/timestamp.i18n.json5 b/src/i18n/locales/zh_CN/timestamp.i18n.json5 deleted file mode 100644 index 064e89e..0000000 --- a/src/i18n/locales/zh_CN/timestamp.i18n.json5 +++ /dev/null @@ -1,14 +0,0 @@ -{ - "input": "输入", - "get":"获取当前", - "normal_second": "标准时间(秒)", - "normal_millisecond":"标准时间(毫秒)", - "unix_second": "Unix时间戳(秒)", - "unix_millisecond":"Unix时间戳(毫秒)", - "output": "输出", - "copy":"复制", - "error_format": "输入时间格式异常", - "error":"错误:{0}", - "format": "格式", - "value":"值" -} diff --git a/src/i18n/locales/zh_CN/unicode.i18n.json5 b/src/i18n/locales/zh_CN/unicode.i18n.json5 deleted file mode 100644 index c9a7a7a..0000000 --- a/src/i18n/locales/zh_CN/unicode.i18n.json5 +++ /dev/null @@ -1,15 +0,0 @@ -{ - "input": "输入", - "encode": "编码", - "decode": "解码", - "mode_default": "Unicode 默认模式", - "mode_wide": "Unicode 宽字符模式", - "mode_wide_bracket": "Unicode 宽字符模式(带大括号)", - "mode_number": "Unicode 编码模式", - "mode_html_10": "Html 实体(10进制)", - "mode_html_16": "Html 实体(16进制)", - "mode_css_16": "Css 实体(16进制)", - "ignore_ascii": "忽略 Ascii 字符", - "output": "输出", - "error": "错误:{0}" -} diff --git a/src/i18n/locales/zh_CN/unit.i18n.json5 b/src/i18n/locales/zh_CN/unit.i18n.json5 deleted file mode 100644 index 7873f9f..0000000 --- a/src/i18n/locales/zh_CN/unit.i18n.json5 +++ /dev/null @@ -1,188 +0,0 @@ -{ - "length": "长度", - "area": "面积", - "volume": "体积", - "weight": "质量", - "temperature": "温度", - "pressure": "压力", - "power": "功率", - "work": "功/能/热", - "density": "密度", - "strength": "力", - "time": "时间", - "speed": "速度", - "byte": "数据存储", - "angle": "角度", - "length_km": "千米", - "length_m": "米", - "length_dm": "分米", - "length_cm": "厘米", - "length_mm": "毫米", - "length_um": "微米", - "length_nm": "纳米", - "length_pm": "皮米", - "length_ly": "光年", - "length_au": "天文单位", - "length_in": "英寸", - "length_ft": "英尺", - "length_yd": "码", - "length_mi": "英里", - "length_nmi": "海里", - "length_fm": "英寻", - "length_fur": "弗隆", - "length_cn_li": "里", - "length_cn_zhang": "丈", - "length_cn_chi": "尺", - "length_cn_cun": "寸", - "length_cn_fen": "分", - "length_cn_li2": "厘", - "length_cn_hao": "毫", - "area_km_2": "平方千米", - "area_ha": "公顷", - "area_are": "公亩", - "area_m_2": "平方米", - "area_dm_2": "平方分米", - "area_cm_2": "平方厘米", - "area_mm_2": "平方毫米", - "area_acre": "英亩", - "area_mi_2": "平方英里", - "area_yd_2": "平方码", - "area_ft_2": "平方英尺", - "area_in_2": "平方英寸", - "area_rd_2": "平方竿", - "area_cn_qing": "顷", - "area_cn_mu": "亩", - "area_cn_fen": "分", - "area_cn_chi_2": "平方尺", - "area_cn_cun_2": "平方寸", - "volume_m_3": "立方米", - "volume_dm_3": "立方分米", - "volume_cm_3": "立方厘米", - "volume_mm_3": "立方毫米", - "volume_l": "升", - "volume_dl": "分升", - "volume_ml": "毫升", - "volume_cl": "厘升", - "volume_uL": "微升", - "volume_hl": "公石", - "volume_ft_3": "立方英尺", - "volume_in_3": "立方英寸", - "volume_yd_3": "立方码", - "volume_acre_ft": "亩英尺", - "volume_uk_gal": "英制加仑", - "volume_us_gal": "美制加仑", - "volume_uk_oz": "英制液体盎司", - "volume_us_oz": "美制液体盎司", - "weight_kg": "千克", - "weight_g": "克", - "weight_mg": "毫克", - "weight_ug": "微克", - "weight_t": "吨", - "weight_q": "公担", - "weight_ct": "克拉", - "weight_lb": "磅", - "weight_oz": "盎司", - "weight_gr": "格令", - "weight_lt": "长吨", - "weight_st1": "短吨", - "weight_st2": "英石", - "weight_uk_cwt": "英担", - "weight_us_cwt": "美担", - "weight_dr": "打兰", - "weight_cn_dan": "担", - "weight_cn_jin": "斤", - "weight_cn_liang": "两", - "weight_cn_qian": "钱", - "temperature_c": "摄氏度", - "temperature_f": "华氏度", - "temperature_k": "开氏度", - "temperature_r": "兰氏度", - "temperature_re": "列氏度", - "pressure_pa": "帕斯卡", - "pressure_kpa": "千帕", - "pressure_hpa": "百帕", - "pressure_atm": "标准大气压", - "pressure_mmhg": "毫米汞柱", - "pressure_in_hg": "英寸汞柱", - "pressure_bar": "巴", - "pressure_mbar": "毫巴", - "pressure_psf": "磅力/平方英尺", - "pressure_psi": "磅力/平方英寸", - "pressure_mmwg": "毫米水柱", - "pressure_kgf_cm_2": "公斤力/平方厘米", - "pressure_kgf_m_2": "公斤力/平方米", - "pressure_mpa": "兆帕", - "power_w": "瓦", - "power_kw": "千瓦", - "power_hp": "英制马力", - "power_ps": "米制马力", - "power_kg_m_s": "公斤·米/秒", - "power_kcal_s": "千卡/秒", - "power_btu_s": "英热单位/秒", - "power_ft_lb_s": "英尺·磅/秒", - "power_j_s": "焦耳/秒", - "power_n_m_s": "牛顿·米/秒", - "work_j": "焦耳", - "work_kg_m": "公斤·米", - "work_ps_h": "米制马力·时", - "work_hp_h": "英制马力·时", - "work_kw_h": "千瓦·时", - "work_kw_h_": "度", - "work_cal": "卡", - "work_kcal": "千卡", - "work_btu": "英热单位", - "work_ft_lb": "英尺·磅", - "work_kj": "千焦", - "density_kg_cm_3": "千克/立方厘米", - "density_kg_dm_3": "千克/立方分米", - "density_kg_m_3": "千克/立方米", - "density_g_cm_3": "克/立方厘米", - "density_g_dm_3": "克/立方分米", - "density_g_m_3": "克/立方米", - "strength_n": "牛", - "strength_kn": "千牛", - "strength_kgf": "千克力", - "strength_gf": "克力", - "strength_tf": "公吨力", - "strength_lbf": "磅力", - "strength_kip": "千磅力", - "strength_dyn": "达因", - "time_yr": "年", - "time_week": "周", - "time_d": "天", - "time_h": "时", - "time_min": "分", - "time_s": "秒", - "time_ms": "毫秒", - "time_us": "微秒", - "time_ns": "纳秒", - "speed_m_s": "米/秒", - "speed_km_s": "千米/秒", - "speed_km_h": "千米/时", - "speed_c": "光速", - "speed_mach": "马赫", - "speed_mile_h": "英里/时", - "speed_in_s": "英寸/秒", - "byte_bit": "比特", - "byte_b": "字节", - "byte_kb": "千字节", - "byte_mb": "兆字节", - "byte_gb": "千兆字节", - "byte_tb": "太字节", - "byte_pb": "拍字节", - "byte_eb": "艾字节", - "angle_circle": "圆周", - "angle_angle": "直角", - "angle_gon": "百分度", - "angle_degree": "度", - "angle_min": "分", - "angle_s": "秒", - "angle_rad": "弧度", - "angle_mrad": "毫弧度", - "metric_system": "公制", - "imperial_units": "英制", - "chinese_units": "市制", - "angle_units": "角度制", - "radian_units": "弧度制", - "all": "全部" -} diff --git a/src/i18n/locales/zh_CN/url.i18n.json5 b/src/i18n/locales/zh_CN/url.i18n.json5 deleted file mode 100644 index 92adb92..0000000 --- a/src/i18n/locales/zh_CN/url.i18n.json5 +++ /dev/null @@ -1,6 +0,0 @@ -{ - "input": "输入", - "encode": "编码", - "decode": "解码", - "output": "输出" -} diff --git a/src/i18n/locales/zh_CN/uuid.i18n.json5 b/src/i18n/locales/zh_CN/uuid.i18n.json5 deleted file mode 100644 index 2f5d7b4..0000000 --- a/src/i18n/locales/zh_CN/uuid.i18n.json5 +++ /dev/null @@ -1,9 +0,0 @@ -{ - "amount": "数量", - "delimiter": "分隔符", - "hyphens": "连接符(-)", - "is_upper": "大写", - "is_add_quote": "添加引号", - "uint8_array": "Uint8 Array", - "output": "输出" -} diff --git a/src/i18n/locales/zh_CN/variableConversion.i18n.json5 b/src/i18n/locales/zh_CN/variableConversion.i18n.json5 deleted file mode 100644 index 3f4ae9f..0000000 --- a/src/i18n/locales/zh_CN/variableConversion.i18n.json5 +++ /dev/null @@ -1,4 +0,0 @@ -{ - "input": "输入", - "input_placeholder":"一行一个" -} diff --git a/src/i18n/locales/zh_CN/websocket.i18n.json5 b/src/i18n/locales/zh_CN/websocket.i18n.json5 deleted file mode 100644 index 5d50ab2..0000000 --- a/src/i18n/locales/zh_CN/websocket.i18n.json5 +++ /dev/null @@ -1,18 +0,0 @@ -{ - "connect": "连接", - "close": "断开", - "send_content": "发送内容", - "log_content": "交互记录", - "send": "发送", - "copy": "复制全部", - "clear": "清空", - "you": "你", - "server": "服务端", - "error_connect": "ws还没有连接,或者连接失败,请检测", - "error_content": "发送内容不能为空", - "connect_ok": "连接成功", - "close_ok": "断开成功", - "error": "错误:{0}", - "connect_start": "开始连接:{0}", - "close_start": "开始中断:{0}" -} diff --git a/src/statics/crontab_cn.png b/src/statics/crontab_cn.png deleted file mode 100644 index c324c1252421ea0121419cb6c2da22078d9f8b09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26251 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 diff --git a/src/statics/crontab_en.png b/src/statics/crontab_en.png deleted file mode 100644 index 77a76222f93873cb4691ac18d278bf64bef20828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3787 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 { - // 设置语言环境 - setCurrentLocale(setting.locale()) - // 设置显示模式 - theme(setting.displayMode()) - - Vue.config.productionTip = false - - Vue.use(ViewUI) - Vue.use(modelPlugin) - Vue.component('option-block', optionBlock); - Vue.component('input-block', inputBlock); - - new Vue({ - i18n, - router, - render: h => h(App), - }).$mount('#app') - - // 清理缓存数据 - setTimeout(() => { - cache.clear() - }, 500) -} - -(function () { - if (document.body.clientWidth > 900 || isUtools || isWeb) { - const page = document.getElementById('page') - page.style.width = 'auto' - page.style.height = 'auto' - } - if (isUtools) { - window.utools.onPluginReady(() => { - run() - }) - } else { - run() - } -})() - - diff --git a/src/tool.router.js b/src/tool.router.js deleted file mode 100644 index 05faf0b..0000000 --- a/src/tool.router.js +++ /dev/null @@ -1,191 +0,0 @@ -import Vue from 'vue' -import Router from 'vue-router' -import {env} from './helper' -import {stringify as qsStringify} from "qs"; -import user from "./tool/user"; - -Vue.use(Router) - -export const stat = (action, data = {}) => { - setTimeout(() => { - try { - let img = new Image(1, 1); - img.src = 'https://www.baiy.org/chrome_tool/stat/?' + qsStringify({ - v: env('version'), - a: action, - u: user.uid(), - p: env('platform'), - r: Math.random(), - ...data - }); - } catch (e) { - // todo - } - }, 3000) -}; - -// 路由配置 -const routes = [ - { - path: '/tool/base64', - component: r => require(['./views/tool/base64.vue'], r) - }, - { - path: '/tool/code', - component: r => require(['./views/tool/code.vue'], r) - }, - { - path: '/tool/decimalConvert', - component: r => require(['./views/tool/decimalConvert.vue'], r) - }, - { - path: '/tool/diffs', - component: r => require(['./views/tool/diffs.vue'], r) - }, - { - path: '/tool/encrypt', - component: r => require(['./views/tool/encrypt.vue'], r) - }, - { - path: '/tool/sign', - component: r => require(['./views/tool/sign.vue'], r) - }, - { - path: '/tool/hash', - component: r => require(['./views/tool/hash.vue'], r) - }, - { - path: '/tool/ip', - component: r => require(['./views/tool/ip.vue'], r) - }, - { - path: '/tool/serializeConversion', - component: r => require(['./views/tool/serializeConversion.vue'], r) - }, - { - path: '/tool/pinyin', - component: r => require(['./views/tool/pinyin.vue'], r) - }, - { - path: '/tool/qrCode', - component: r => require(['./views/tool/qrCode.vue'], r) - }, - { - path: '/tool/barcode', - component: r => require(['./views/tool/barcode.vue'], r) - }, - { - path: '/tool/randomString', - component: r => require(['./views/tool/randomString.vue'], r) - }, - { - path: '/tool/regex', - component: r => require(['./views/tool/regex.vue'], r) - }, - { - path: '/tool/timestamp', - component: r => require(['./views/tool/timestamp.vue'], r) - }, - { - path: '/tool/unicode', - component: r => require(['./views/tool/unicode.vue'], r) - }, - { - path: '/tool/url', - component: r => require(['./views/tool/url.vue'], r) - }, - { - path: '/tool/crontab', - component: r => require(['./views/tool/crontab.vue'], r) - }, - { - path: '/tool/websocket', - component: r => require(['./views/tool/websocket.vue'], r) - }, - { - path: '/tool/unit', - component: r => require(['./views/tool/unit.vue'], r) - }, - { - path: '/tool/time', - component: r => require(['./views/tool/time.vue'], r) - }, - { - path: '/tool/json', - component: r => require(['./views/tool/json.vue'], r) - }, - { - path: '/tool/uuid', - component: r => require(['./views/tool/uuid.vue'], r) - }, - { - path: '/tool/ascii', - component: r => require(['./views/tool/ascii.vue'], r) - }, - { - path: '/tool/variableConversion', - component: r => require(['./views/tool/variableConversion.vue'], r) - }, - { - path: '/tool/jwt', - component: r => require(['./views/tool/jwt.vue'], r) - }, - { - path: '/tool/hexString', - component: r => require(['./views/tool/hexString.vue'], r) - }, - { - path: '/tool/hex2base64', - component: r => require(['./views/tool/hex2base64.vue'], r) - }, - { - path: '/tool/text', - component: r => require(['./views/tool/text.vue'], r) - }, - { - path: '/tool/html', - component: r => require(['./views/tool/html.vue'], r) - }, - { - path: '/tool/binary', - component: r => require(['./views/tool/binary.vue'], r) - }, - { - path: '/tool/armConverter', - component: r => require(['./views/tool/armConverter.vue'], r) - }, - { - path: '/tool/bcrypt', - component: r => require(['./views/tool/bcrypt.vue'], r) - }, - { - path: '/tool/ipcalc', - component: r => require(['./views/tool/ipcalc.vue'], r) - }, - { - path: '/yeahmao/hexConvert', - component: r => require(['./views/yeahmao/hexConvert.vue'], r) - }, - { - path: '/yeahmao/constFinder', - component: r => require(['./views/yeahmao/constFinder'], r) - }, - { - path: '/yeahmao/code_gen/codeGenJson', - component: r => require(['./views/yeahmao/code_gen/codeGenJson.vue'], r) - }, - { - path: '/yeahmao/code_gen/codeGenJava', - component: r => require(['./views/yeahmao/code_gen/codeGenJava.vue'], r) - } -] - -const router = new Router({routes}) - -stat('index') - -router.afterEach(to => { - stat('tool', {tool: to.path}) -}) - -export default router diff --git a/src/tool.vue b/src/tool.vue deleted file mode 100644 index 4005b8e..0000000 --- a/src/tool.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - diff --git a/src/tool/adapter.js b/src/tool/adapter.js deleted file mode 100644 index 015e00c..0000000 --- a/src/tool/adapter.js +++ /dev/null @@ -1,255 +0,0 @@ -const path = require('path'); -const _ = require('lodash'); -const fs = require('fs'); -const i18nBuild = require('../i18n/build') -// 运行平台适配 -let platform = process.env.hasOwnProperty('npm_config_adapter') ? process.env.npm_config_adapter : ""; -platform = ['chrome', 'utools', 'edge', 'firefox', 'web'].includes(platform) ? platform : "web" - -const IS_CHROME = "chrome" === platform -const IS_EDGE = "edge" === platform -const IS_FIREFOX = "firefox" === platform -const IS_UTOOLS = "utools" === platform -const IS_CHROMIUM = ['chrome', 'edge'].includes(platform) -const IS_WEB = "web" === platform - -const toolConfig = require('../config') -const tools = toolConfig.tool -const utoolsConfig = toolConfig.utools -const featureConfig = toolConfig.feature - -const getToolFeatureTitle = (name, features = []) => { - for (let i = 0; i < features.length; i++) { - if (features[i]['name'] === name) { - return features[i].title - } - } - return name -} - -// 删除文件 -const removeFile = (filePath) => { - fs.existsSync(filePath) && fs.unlinkSync(filePath) -} - -// 删除目录 -const removeDir = function (directoryPath) { - if (fs.existsSync(directoryPath)) { - fs.readdirSync(directoryPath).forEach((file) => { - const curPath = path.join(directoryPath, file); - if (fs.lstatSync(curPath).isDirectory()) { - removeDir(curPath); - } else { - fs.unlinkSync(curPath); - } - }); - fs.rmdirSync(directoryPath); - } -}; - - -const chromiumAndFirefoxI18nBuild = ()=>{ - // 生成语言包 - const locales = i18nBuild.getLocales().detail - const localeDir = path.join(__dirname, '../../public/_locales/') - fs.mkdirSync(localeDir); - Object.keys(locales).forEach((_locale) => { - fs.mkdirSync(path.join(localeDir, _locale)); - let messages = {} - Object.keys(locales[_locale]).forEach((key) => { - let message = { - message: locales[_locale][key]['message'].replace(new RegExp("{.+?}", 'g'), (item) => { - return `$${item.replace("{", "").replace("}", "").toUpperCase()}$`; - }) - } - if ("placeholders" in locales[_locale][key]) { - message.placeholders = {} - let index = 1; - locales[_locale][key]['placeholders'].forEach((placeholder) => { - message.placeholders[placeholder] = {content: "$" + (index++)} - }) - } - messages[key] = message - }) - fs.writeFileSync(path.join(localeDir, `${_locale}/messages.json`), JSON.stringify(messages, null, 4)); - }) -} - -const chromeConfigWrite = { - remove() { - }, - write() { - if (!IS_CHROME) { - return; - } - fs.writeFileSync( - path.join(__dirname, '../../public/manifest.json'), - fs.readFileSync(path.join(__dirname, "../adapter/chrome/manifest.json")).toString().replace(/##version##/g, process.env.npm_package_version) - ); - } -} - -const edgeConfigWrite = { - remove() { - }, - write() { - if (!IS_EDGE) { - return; - } - fs.writeFileSync( - path.join(__dirname, '../../public/manifest.json'), - fs.readFileSync(path.join(__dirname, "../adapter/edge/manifest.json")).toString().replace(/##version##/g, process.env.npm_package_version) - ); - } -} - -const chromiumConfigWrite = { - remove() { - removeFile(path.join(__dirname, '../../public/manifest.json')); - removeFile(path.join(__dirname, '../../public/background.js')); - // 移除语言包目录 - removeDir(path.join(__dirname, '../../public/_locales/')) - }, - write() { - if (!IS_CHROMIUM) { - return; - } - fs.copyFileSync( - path.join(__dirname, "../adapter/chromium/background.js"), - path.join(__dirname, '../../public/background.js') - ); - // 生成语言包 - chromiumAndFirefoxI18nBuild() - } -} - -const firefoxConfigWrite = { - remove() { - removeFile(path.join(__dirname, '../../public/manifest.json')); - removeFile(path.join(__dirname, '../../public/background.js')); - // 移除语言包目录 - removeDir(path.join(__dirname, '../../public/_locales/')) - }, - write() { - if (!IS_FIREFOX) { - return; - } - fs.copyFileSync( - path.join(__dirname, "../adapter/firefox/background.js"), - path.join(__dirname, '../../public/background.js') - ); - fs.writeFileSync( - path.join(__dirname, '../../public/manifest.json'), - fs.readFileSync(path.join(__dirname, "../adapter/firefox/manifest.json")).toString().replace(/##version##/g, process.env.npm_package_version) - ); - // 生成语言包 - chromiumAndFirefoxI18nBuild() - } -} - - -const utoolsConfigWrite = { - remove() { - removeFile(path.join(__dirname, '../../public/plugin.json')); - }, - write() { - if (!IS_UTOOLS) { - return; - } - let pluginPath = path.join(__dirname, '../../public/plugin.json'); - fs.readFile(path.join(__dirname, "../adapter/utools/plugin.json"), 'utf8', function (err, files) { - if (err) return console.log(err); - let utoolsToolFeature = {}; - for (let tool of tools) { - // 初始化数据 - let code = "ctool-" + tool.name; - let toolTitle = i18nBuild.translate(`main_tool_${tool.name}`) - let toolFeatures = featureConfig.hasOwnProperty(tool.name) ? featureConfig[tool.name] : [] - if (!utoolsToolFeature.hasOwnProperty(code)) { - utoolsToolFeature[code] = { - "code": code, - "explain": toolTitle, - "cmds": [] - } - if (toolFeatures.length > 0) { - for (let toolFeature of toolFeatures) { - let toolFeatureCode = code + '-' + toolFeature['name'] - utoolsToolFeature[toolFeatureCode] = { - "code": toolFeatureCode, - "explain": toolTitle + ' - ' + toolFeature['title'], - "cmds": [] - } - } - } - } - - // 关键字 - let keyword = utoolsConfig['keyword'].hasOwnProperty(tool.name) ? utoolsConfig['keyword'][tool.name] : [] - utoolsToolFeature[code].cmds.push( - ...Array.from(new Set([tool.name, toolTitle, "ctool-" + tool.name, ...keyword])) - ) - - // cmds手动配置 - let cmds = utoolsConfig['cmds'].hasOwnProperty(tool.name) ? utoolsConfig['cmds'][tool.name] : [] - if (!cmds.length) { - continue; - } - - for (let _cmd of cmds) { - let cmd = _.cloneDeep(_cmd); - if (!cmd.hasOwnProperty('feature')) { - cmd['label'] = toolTitle - utoolsToolFeature[code].cmds.push(cmd) - continue; - } - let toolFeatureCode = code + '-' + cmd.feature - if (utoolsToolFeature.hasOwnProperty(toolFeatureCode)) { - cmd['label'] = toolTitle + ' - ' + getToolFeatureTitle(cmd.feature, toolFeatures) - delete cmd.feature - utoolsToolFeature[toolFeatureCode].cmds.push(cmd) - } - } - } - - let features = [ - { - "code": "ctool", - "explain": "程序开发常用工具", - "cmds": ['ctool', '程序开发常用工具'] - }, - ...Object.values(utoolsToolFeature) - ]; - - let result = files - .replace(/##version##/g, process.env.npm_package_version) - .replace(/"##features##"/g, JSON.stringify(features)); - fs.writeFileSync(pluginPath, result); - }); - } -} - -module.exports = { - platform: platform, - isChrome: IS_CHROME, - isChromium: IS_CHROMIUM, - isFirefox: IS_FIREFOX, - isEdge: IS_EDGE, - isWeb: IS_WEB, - isUtools: IS_UTOOLS, - initialize: function () { - // 移除配置文件 - chromiumConfigWrite.remove(); - chromeConfigWrite.remove(); - edgeConfigWrite.remove(); - firefoxConfigWrite.remove(); - utoolsConfigWrite.remove(); - // 添加配置文件 - chromiumConfigWrite.write(); - chromeConfigWrite.write(); - edgeConfigWrite.write(); - firefoxConfigWrite.write(); - utoolsConfigWrite.write(); - // 生成运行时语言包 - i18nBuild.generate() - } -} diff --git a/src/tool/cache.js b/src/tool/cache.js deleted file mode 100644 index db0364d..0000000 --- a/src/tool/cache.js +++ /dev/null @@ -1,61 +0,0 @@ -import db from './db' -import {version} from '../helper' - -const cacheVersion = version.split('.').join(''); - -// 缓存key添加版本号 -const cacheNameConvert = function (name) { - return 'v_' + cacheVersion + '_' + name -} - -const cache = { - set(name, value, expiry = 0) { - return db.set(cacheNameConvert(name), value, expiry) - }, - get(name, defaultValue = null) { - let data = db.get(cacheNameConvert(name)) - return data === null ? defaultValue : data - }, - remove(name) { - db.remove(cacheNameConvert(name)) - return db.remove(cacheNameConvert(name)) - }, - setNoVersion(name, value, expiry = 0) { - return db.set('nv_' + name, value, expiry) - }, - getNoVersion(name, defaultValue = null) { - let data = db.get('nv_' + name) - return data === null ? defaultValue : data - }, - removeNoVersion(name) { - return db.remove('nv_' + name) - }, - // 清理数据 - clear() { - setTimeout(() => { - // 清理过期数据 - db.clear(); - // 清理过期版本数据 - clearExpireVersion(); - }, 100); - } -}; - -const clearExpireVersion = () => { - const cache_version_name = "cache_version"; - if (cacheVersion === cache.getNoVersion(cache_version_name)) { - return; - } - cache.setNoVersion(cache_version_name, cacheVersion) - for (let key of db.getAllKey()) { - let c = /^v_(\d+)_/.exec(key) - if (c === null) { - continue; - } - if (cacheVersion !== c[1].trim()) { - db.remove(key) - } - } -} - -export default cache \ No newline at end of file diff --git a/src/tool/clipboard.js b/src/tool/clipboard.js deleted file mode 100644 index ef9bfea..0000000 --- a/src/tool/clipboard.js +++ /dev/null @@ -1,36 +0,0 @@ -import {isUtools} from '../helper' -// 剪贴板操作 -export const copy = (data,successCallback)=>{ - document.querySelector( - '#clipboard').innerHTML = '' - document.querySelector('#clipboard-text').value = data - document.querySelector('#clipboard-text').select() - if (document.execCommand('copy')) { - successCallback && successCallback() - } - document.querySelector('#clipboard').innerHTML = '' -} - -export const paste = ()=>{ - document.querySelector( - '#clipboard').innerHTML = '' - document.querySelector('#clipboard-text').select() - document.execCommand('paste') - let r = document.querySelector('#clipboard-text').value || - document.querySelector('#clipboard-text').innerHTML - document.querySelector('#clipboard').innerHTML = '' - return r ? r : '' -} - -export const copyImage = (imageBase64,successCallback = "")=>{ - if (isUtools && imageBase64){ - window.utools.copyImage(imageBase64) - successCallback && successCallback() - } -} - -export default { - copy, - paste, - copyImage -} diff --git a/src/tool/config.js b/src/tool/config.js deleted file mode 100644 index 397553e..0000000 --- a/src/tool/config.js +++ /dev/null @@ -1,102 +0,0 @@ -import {env} from '../helper' -import cache from './cache' - -const toolConfig = require('../config') - -// 工具缓存数据过期时间(秒) -export const TOOL_DATA_EXPIRY = toolConfig.toolDataExpiry -// 徽章过期时间(天) -export const BADGE_EXPIRY = toolConfig.badgeExpiry -// 分类徽章 -export const BADGE_CATEGORY = toolConfig.badgeCategory -// 工具徽章 -export const BADGE_TOOL = toolConfig.badgeTool -// 默认常用工具 -export const DEFAULT_COMMON_TOOL = toolConfig.defaultCommonTool - -const category = toolConfig.category - -const tool = toolConfig.tool - -// 徽章是否显示 -const badgeIsShow = function () { - return (Date.parse((new Date()).toString()) / 1000) - env('updateTime') < - BADGE_EXPIRY * 86400 -} - -const getUserCommon = function () { - let tools = cache.getNoVersion('user_common') - return tools ? tools : DEFAULT_COMMON_TOOL -} - -const setUserCommon = function (tools) { - cache.setNoVersion('user_common', tools) -} - -const getToolDefaultCategory = function (name) { - for (let i = 0; i < tool.length; i++) { - if (tool[i].name === name) { - return tool[i].cat[0] - } - } - return '' -} - -const getToolByName = (name) => { - for (let item of tool) { - if (name === item.name) { - return item - } - } - return null -} - -/** - * @param name - * @param defaultValue - * @return {any} - */ -const getSetting = function (name, defaultValue = null) { - let setting = cache.getNoVersion('setting', {}) - return !setting.hasOwnProperty(name) ? defaultValue : setting[name] -} - -/** - * @param name - * @param value - * @return {boolean} - */ -const saveSetting = function (name, value) { - let setting = cache.getNoVersion('setting', {}) - setting[name] = value - cache.setNoVersion('setting', setting); - return true -} - -export default { - tool: tool, - saveSetting, - getSetting, - category, - setUserCommon, - getUserCommon, - getToolByCategory(cat) { - if (cat === 'common') { - return getUserCommon().map((name) => { - return getToolByName(name) - }).filter((item) => { - return item !== null - }); - } - return tool.filter((t) => { - return t.cat.includes(cat); - }) - }, - getToolDefaultCategory, - badgeToolIsShow(tool) { - return badgeIsShow() && BADGE_TOOL.includes(tool) - }, - badgeCategoryIsShow(cat) { - return badgeIsShow() && BADGE_CATEGORY.includes(cat) - }, -} diff --git a/src/tool/db.js b/src/tool/db.js deleted file mode 100644 index 80a197a..0000000 --- a/src/tool/db.js +++ /dev/null @@ -1,24 +0,0 @@ -import {isUtools} from '../helper' -import utoolsDb from '../adapter/utools/db' -import defaultDb from '../adapter/default/db' - -const db = isUtools ? utoolsDb : defaultDb; - -export default { - get(key, def = null) { - return db.get(key, def) - }, - set(key, value, expiry = 0) { - return db.set(key, value, expiry) - }, - remove(key) { - return db.remove(key) - }, - // 清理过期 - clear() { - return db.clear(); - }, - getAllKey() { - return db.getAllKey(); - } -} \ No newline at end of file diff --git a/src/tool/event.js b/src/tool/event.js deleted file mode 100644 index 4a93b5f..0000000 --- a/src/tool/event.js +++ /dev/null @@ -1,18 +0,0 @@ -// 窗口大小调整事件 -export const WINDOW_RESIZE = "ctoolWindowResize" -// 语言地区变化事件 -export const I18N_CHANGE = "ctoolI18nChange" -export const dispatchWindowResize = () => { - window.dispatchEvent(new CustomEvent(WINDOW_RESIZE)); -} -export const dispatchI18nChange = () => { - window.dispatchEvent(new CustomEvent(I18N_CHANGE)); -} - -// 原生窗口调整事件 -window.addEventListener("resize", ()=>{ - dispatchWindowResize() -}); - - - diff --git a/src/tool/history.js b/src/tool/history.js deleted file mode 100644 index 13a3746..0000000 --- a/src/tool/history.js +++ /dev/null @@ -1,103 +0,0 @@ -import crypto from 'crypto-js' -import moment from 'moment' -import cache from './cache' -import {TOOL_DATA_EXPIRY} from './config' -import _ from "lodash"; - -let loadHistoryIndex = -1 -let forceLoadHistory = false - -function queueDataFactory(value) { - return { - 'time': moment().format('YYYY-MM-DD HH:mm:ss'), - 'hash': crypto.MD5(JSON.stringify(value)).toString(), - 'value': value, - } -} - -class queue { - data = [] - name = '' - max = 10 - - constructor(name, max = 50) { - this.name = name - this.max = max - // 初始化数据 - this.data = cache.get(this.getCacheName(), []) - } - - getCacheName() { - return 'tool_data_history_' + this.name - } - - push(value) { - // 过滤超大数据 - if (JSON.stringify(value).length > 200 * 1024){ - console.log("Data Too Big") - return; - } - let item = queueDataFactory(value) - - // 删除已有 - for (let i = 0; i < this.data.length; i++) { - if (this.data[i].hash === item.hash) { - this.data.splice(i, 1) - } - } - - this.data.unshift(item) - - // 删除多余 - if (this.length() > this.max) { - this.data.pop() - } - - cache.set(this.getCacheName(), this.data, TOOL_DATA_EXPIRY) - } - - length() { - return this.data.length - } - - all() { - return this.data - } - - clear() { - cache.remove(this.getCacheName()) - } - - get(index) { - return _.cloneDeep(this.data.hasOwnProperty(index) ? this.data[index].value : {}) - } - - current() { - if (loadHistoryIndex < 0) { - return this.get(0) - } - let index = loadHistoryIndex - loadHistoryIndex = -1 - return this.get(index) - } -} - -const history = (name) => { - return new queue(name) -} - -export const setForceLoadHistoryIndex = (index) => { - forceLoadHistory = true - loadHistoryIndex = index -} - -export const getForceLoadHistory = (name) => { - if (forceLoadHistory) { - forceLoadHistory = false - let data = history(name).current() - return _.isEmpty(data) ? null : data - } - return null -} - -export default history diff --git a/src/tool/instance.js b/src/tool/instance.js deleted file mode 100644 index 06a6a68..0000000 --- a/src/tool/instance.js +++ /dev/null @@ -1,23 +0,0 @@ -import config from "./config"; - -let instance = null; - -export default { - set(t) { - if (instance === null) { - instance = t - } - }, - get() { - return instance - }, - enter(name) { - if (instance !== null) { - let cat = config.getToolDefaultCategory(name); - if (cat) { - instance.categorySelect(cat) - } - instance.toolSelect(name) - } - } -} \ No newline at end of file diff --git a/src/tool/model.js b/src/tool/model.js deleted file mode 100644 index 94005d1..0000000 --- a/src/tool/model.js +++ /dev/null @@ -1,166 +0,0 @@ -import config from './config' -import clipboard from './clipboard' -import setting from './setting' -import cache from './cache' -import history,{getForceLoadHistory} from './history.js' -import _ from "lodash"; - -let fixeInputData; -let toolCurrentFeature = ""; -const model = { - getCategoryHistory() { - return cache.get('page_category_history', 'common') - }, - setCategoryHistory(cat) { - return cache.set('page_category_history', cat) - }, - getToolHistory(cat) { - let all = cache.get('category_tool_history', {}) - if (all[cat]) { - return all[cat] - } - return config.getToolByCategory(cat)[0]['name'] - }, - setToolHistory(cat, name) { - let all = cache.get('category_tool_history', {}) - all[cat] = name - return cache.set('category_tool_history', all) - }, - getCurrentTool() { - return cache.get('current_tool', '') - }, - setCurrentTool(name) { - return cache.set('current_tool', name) - }, - setFixeInputData: (value) => { - fixeInputData = value; - }, - setToolCurrentFeature: (value) => { - toolCurrentFeature = value; - }, - getToolCurrentFeature: (def = "") => { - let temp = toolCurrentFeature - toolCurrentFeature = ""; - return temp ? temp : def - } -} - -// 保存历史记录防抖 -let debounceSaveToolData = {}; -const debounceSaveToolDataMethod = _.debounce(function () { - return history(debounceSaveToolData['tool']).push(debounceSaveToolData['data']) -}, 1000) - - -const appendData = async function (check = "",all) { - const result = (data = "") => { - if (data) { - if ( - !check - || (_.isFunction(check) && check(data,all)) // 函数校验 - ) { - return data - } - } - return "" - } - return new Promise(async (resolve) => { - try { - // 使用固定输入数据 - if (fixeInputData) { - let temp = fixeInputData - fixeInputData = "" - return resolve(result(temp)) - } - if (setting.autoReadCopy()) { - let paste = (await clipboard.paste()).trim() - if (paste) { - resolve(result(paste)) - } - } - resolve(result()) - } catch { - resolve(result()) - } - }); -} - -export const plugin = { - install: function (Vue) { - Vue.prototype.$initToolData = function (input = "", inputCheck = "", field = "current", isLoadHistory = true) { - let current = _.cloneDeep(this[field]) - //强制使用历史数据 - let forceHistory = getForceLoadHistory(model.getCurrentTool()) - if (forceHistory){ - Object.assign(current, forceHistory) - this[field] = current - return; - } - - let inputHistory = "" - let inputDefault = "" - let inputAppend = "" - // 默认数据 - if (input && (input in current) && current[input]) { - inputDefault = current[input]; - } - // 历史数据 - if (isLoadHistory) { - let history = this.$getToolData() - Object.assign(current, history) - if (input && (input in history)) { - inputHistory = history[input] - delete history[input] - } - } - - if (!input) { - this[field] = current - return; - } - - // 追加剪贴板等数据 - appendData(inputCheck,current).then((append) => { - inputAppend = append - this[field] = Object.assign( - current, - { - // 追加数据 > 历史数据 > 默认数据 - [input]: inputAppend ? inputAppend : (inputHistory ? inputHistory : inputDefault) - } - ) - }) - } - Vue.prototype.$getToolData = function () { - return _.cloneDeep(history(model.getCurrentTool()).current()) - } - Vue.prototype.$saveToolData = function (data, ignoreDebounce = false) { - if (ignoreDebounce) { - return history(model.getCurrentTool()).push(_.cloneDeep(data)) - } - debounceSaveToolData = {tool: model.getCurrentTool(), data: _.cloneDeep(data)} - debounceSaveToolDataMethod() - } - Vue.prototype.$clipboardCopy = function (data, force = false) { - if ((setting.autoSaveCopy() || force)) { - this.$copy(data) - } - } - Vue.prototype.$copy = function (data) { - if (data) { - clipboard.copy(data, () => { - this.$Message.success(this.$t('main_ui_copy_text_ok').toString()) - }) - } - } - Vue.prototype.$clipboardCopyImages = function (data, force = false) { - if ((setting.autoSaveCopy() || force) && data) { - clipboard.copyImage(data, () => { - this.$Message.success(this.$t('main_ui_copy_image_ok').toString()) - }) - } - } - }, -} - -export default model diff --git a/src/tool/setting.js b/src/tool/setting.js deleted file mode 100644 index 07347e3..0000000 --- a/src/tool/setting.js +++ /dev/null @@ -1,45 +0,0 @@ -import config from './config' - -export default { - /** - * @param value - * @return {boolean} - */ - autoSaveCopy(value = null) { - if (value === null) { - return config.getSetting('auto_save_copy', true) - } - return config.saveSetting('auto_save_copy', value) - }, - - /** - * @param value - * @return {boolean} - */ - autoReadCopy(value = null) { - if (value === null) { - return config.getSetting('auto_read_copy', true) - } - return config.saveSetting('auto_read_copy', value) - }, - /** - * @param value - * @return {boolean} - */ - autoReadCopyFilter(value = null) { - if (value === null) { - return config.getSetting('auto_read_copy_filter', false) - } - return config.saveSetting('auto_read_copy_filter', value) - }, - /** - * @param value - * @return {boolean} - */ - displayMode(value = null) { - if (value === null) { - return config.getSetting('display_mode', 'light') - } - return config.saveSetting('display_mode', value) - }, -} diff --git a/src/tool/theme.js b/src/tool/theme.js deleted file mode 100644 index 6f05c39..0000000 --- a/src/tool/theme.js +++ /dev/null @@ -1,5 +0,0 @@ -export default (mode) => { - mode = ['light', 'dark', 'auto'].includes(mode) ? mode : 'light' - console.log(`set display mode:${mode}`) - document.getElementsByTagName('html')[0].setAttribute('theme-mode', mode); -} diff --git a/src/tool/user.js b/src/tool/user.js deleted file mode 100644 index b2d2cc4..0000000 --- a/src/tool/user.js +++ /dev/null @@ -1,15 +0,0 @@ -import cache from './cache' -import {uuid} from '../helper' - -const cache_name = "user_uuid" - -export default { - uid() { - let id = cache.getNoVersion(cache_name); - if (id === null) { - id = uuid() - cache.setNoVersion(cache_name, id) - } - return id - } -} \ No newline at end of file diff --git a/src/views/setting/block.vue b/src/views/setting/block.vue deleted file mode 100644 index 0037e41..0000000 --- a/src/views/setting/block.vue +++ /dev/null @@ -1,114 +0,0 @@ - - - diff --git a/src/views/setting/common.vue b/src/views/setting/common.vue deleted file mode 100644 index 9bb3f5f..0000000 --- a/src/views/setting/common.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - diff --git a/src/views/tool/armConverter.vue b/src/views/tool/armConverter.vue deleted file mode 100644 index fb7393b..0000000 --- a/src/views/tool/armConverter.vue +++ /dev/null @@ -1,264 +0,0 @@ - - - diff --git a/src/views/tool/ascii.vue b/src/views/tool/ascii.vue deleted file mode 100644 index bbdb701..0000000 --- a/src/views/tool/ascii.vue +++ /dev/null @@ -1,152 +0,0 @@ - - \ No newline at end of file diff --git a/src/views/tool/barcode.vue b/src/views/tool/barcode.vue deleted file mode 100644 index db4f284..0000000 --- a/src/views/tool/barcode.vue +++ /dev/null @@ -1,270 +0,0 @@ - - - - diff --git a/src/views/tool/base64.vue b/src/views/tool/base64.vue deleted file mode 100644 index c339b5c..0000000 --- a/src/views/tool/base64.vue +++ /dev/null @@ -1,252 +0,0 @@ - - diff --git a/src/views/tool/bcrypt.vue b/src/views/tool/bcrypt.vue deleted file mode 100644 index 1dc7bd1..0000000 --- a/src/views/tool/bcrypt.vue +++ /dev/null @@ -1,121 +0,0 @@ - - diff --git a/src/views/tool/binary.vue b/src/views/tool/binary.vue deleted file mode 100644 index 18dbd21..0000000 --- a/src/views/tool/binary.vue +++ /dev/null @@ -1,82 +0,0 @@ - - diff --git a/src/views/tool/code.vue b/src/views/tool/code.vue deleted file mode 100644 index 3fb1c62..0000000 --- a/src/views/tool/code.vue +++ /dev/null @@ -1,123 +0,0 @@ - - diff --git a/src/views/tool/components/autoHeightTextarea.vue b/src/views/tool/components/autoHeightTextarea.vue deleted file mode 100644 index b25b279..0000000 --- a/src/views/tool/components/autoHeightTextarea.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/src/views/tool/components/codeEditor.vue b/src/views/tool/components/codeEditor.vue deleted file mode 100644 index fb00680..0000000 --- a/src/views/tool/components/codeEditor.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - - diff --git a/src/views/tool/components/diffEditor.vue b/src/views/tool/components/diffEditor.vue deleted file mode 100644 index e255583..0000000 --- a/src/views/tool/components/diffEditor.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - - diff --git a/src/views/tool/components/disableMask.vue b/src/views/tool/components/disableMask.vue deleted file mode 100644 index af04c4b..0000000 --- a/src/views/tool/components/disableMask.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/src/views/tool/components/heightResize.vue b/src/views/tool/components/heightResize.vue deleted file mode 100644 index 9859891..0000000 --- a/src/views/tool/components/heightResize.vue +++ /dev/null @@ -1,83 +0,0 @@ - - - diff --git a/src/views/tool/components/pasteClipboardFlie.vue b/src/views/tool/components/pasteClipboardFlie.vue deleted file mode 100644 index df130f6..0000000 --- a/src/views/tool/components/pasteClipboardFlie.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/src/views/tool/components/regex/referenceEn.vue b/src/views/tool/components/regex/referenceEn.vue deleted file mode 100644 index 96fbb5d..0000000 --- a/src/views/tool/components/regex/referenceEn.vue +++ /dev/null @@ -1,244 +0,0 @@ - - - diff --git a/src/views/tool/components/regex/referenceZh.vue b/src/views/tool/components/regex/referenceZh.vue deleted file mode 100644 index a3321dd..0000000 --- a/src/views/tool/components/regex/referenceZh.vue +++ /dev/null @@ -1,234 +0,0 @@ - - diff --git a/src/views/tool/components/updateFile.vue b/src/views/tool/components/updateFile.vue deleted file mode 100644 index 2c7cb51..0000000 --- a/src/views/tool/components/updateFile.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - diff --git a/src/views/tool/crontab.vue b/src/views/tool/crontab.vue deleted file mode 100644 index 546f2c5..0000000 --- a/src/views/tool/crontab.vue +++ /dev/null @@ -1,152 +0,0 @@ - - diff --git a/src/views/tool/decimalConvert.vue b/src/views/tool/decimalConvert.vue deleted file mode 100644 index 9879296..0000000 --- a/src/views/tool/decimalConvert.vue +++ /dev/null @@ -1,142 +0,0 @@ - - diff --git a/src/views/tool/diffs.vue b/src/views/tool/diffs.vue deleted file mode 100644 index 4abfbd5..0000000 --- a/src/views/tool/diffs.vue +++ /dev/null @@ -1,106 +0,0 @@ - - diff --git a/src/views/tool/encrypt.vue b/src/views/tool/encrypt.vue deleted file mode 100644 index 5c67f69..0000000 --- a/src/views/tool/encrypt.vue +++ /dev/null @@ -1,252 +0,0 @@ - - diff --git a/src/views/tool/hash.vue b/src/views/tool/hash.vue deleted file mode 100644 index 9f30286..0000000 --- a/src/views/tool/hash.vue +++ /dev/null @@ -1,122 +0,0 @@ - - diff --git a/src/views/tool/hex2base64.vue b/src/views/tool/hex2base64.vue deleted file mode 100644 index a6fd7e0..0000000 --- a/src/views/tool/hex2base64.vue +++ /dev/null @@ -1,78 +0,0 @@ - - diff --git a/src/views/tool/hexString.vue b/src/views/tool/hexString.vue deleted file mode 100644 index 8151fe0..0000000 --- a/src/views/tool/hexString.vue +++ /dev/null @@ -1,58 +0,0 @@ - - \ No newline at end of file diff --git a/src/views/tool/html.vue b/src/views/tool/html.vue deleted file mode 100644 index 0ae3613..0000000 --- a/src/views/tool/html.vue +++ /dev/null @@ -1,45 +0,0 @@ - - diff --git a/src/views/tool/ip.vue b/src/views/tool/ip.vue deleted file mode 100644 index 1d16b6b..0000000 --- a/src/views/tool/ip.vue +++ /dev/null @@ -1,63 +0,0 @@ - - diff --git a/src/views/tool/ipcalc.vue b/src/views/tool/ipcalc.vue deleted file mode 100644 index 5612fa7..0000000 --- a/src/views/tool/ipcalc.vue +++ /dev/null @@ -1,317 +0,0 @@ - - - - diff --git a/src/views/tool/json.vue b/src/views/tool/json.vue deleted file mode 100644 index baafdc6..0000000 --- a/src/views/tool/json.vue +++ /dev/null @@ -1,218 +0,0 @@ - - - diff --git a/src/views/tool/jwt.vue b/src/views/tool/jwt.vue deleted file mode 100644 index 0a696d6..0000000 --- a/src/views/tool/jwt.vue +++ /dev/null @@ -1,71 +0,0 @@ - - diff --git a/src/views/tool/library/ascii.js b/src/views/tool/library/ascii.js deleted file mode 100644 index 3f75889..0000000 --- a/src/views/tool/library/ascii.js +++ /dev/null @@ -1,120 +0,0 @@ -// ASCII MAP -import Radix from "./radix.js"; - -const ASCII_MAP = ['NUL', 'SOH', 'STX', 'ETX', 'EOT', 'ENQ', 'ACK', 'BEL', 'BS', 'TAB', 'LF', 'VT', 'FF', 'CR', 'SO', 'SI', - 'DLE', 'DC1', 'DC2', 'DC3', 'DC4', 'NAK', 'SYN', 'ETB', 'CAN', 'EM', 'SUB', 'ESC', 'FS', 'GS', 'RS', 'US', - ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', - 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', - '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'DEL'] -// ASCII 不可显示字符 -const ASCII_HIDDEN = { - 'NUL': "空字符(Null)", - 'SOH': "标题开始", - 'STX': "本文开始", - 'ETX': "本文结束", - 'EOT': "传输结束", - 'ENQ': "请求", - 'ACK': "确认回应", - 'BEL': "响铃", - 'BS': "退格", - 'TAB': "水平定位符号", - 'LF': "换行键", - 'VT': "垂直定位符号", - 'FF': "换页键", - 'CR': "归位键", - 'SO': "取消变换(Shift out)", - 'SI': "启用变换(Shift in)", - 'DLE': "跳出数据通讯", - 'DC1': "设备控制一(XON 启用软件速度控制)", - 'DC2': "设备控制二", - 'DC3': "设备控制三(XOFF 停用软件速度控制)", - 'DC4': "设备控制四", - 'NAK': "确认失败回应", - 'SYN': "同步用暂停", - 'ETB': "区块传输结束", - 'CAN': "取消", - 'EM': "连接介质中断", - 'SUB': "替换", - 'ESC': "跳出", - 'FS': "文件分割符", - 'GS': "组群分隔符", - 'RS': "记录分隔符", - 'US': "单元分隔符", - 'DEL': "删除", -} -const radix = new Radix(); - -class Ascii { - constructor(c, type = "str") { - let dec = -1; - c = c + ""; - if (type !== "str"){ - c = c.toLowerCase(); - } - switch (type) { - case 'str': - dec = ASCII_MAP.indexOf(c) - break; - case 'dec': - dec = radix.convent(c, 10, 10); - break; - case 'hex': - dec = radix.convent(c, 16, 10); - break; - case 'oct': - dec = radix.convent(c, 8, 10); - break; - case 'bin': - dec = radix.convent(c.replace(/\b(0+)/gi, ""), 2, 10); - break; - default: - throw 'type error' - } - if (dec < 0 || dec > 127) { - throw 'input error' - } - this.decData = dec - } - - dec() { - return this.decData + "" - } - - hex() { - return (radix.convent(this.decData, 10, 16) + "").toUpperCase() - } - - oct() { - return radix.convent(this.decData, 10, 8) + "" - } - - bin() { - return (radix.convent(this.decData, 10, 2) + "").padStart(8, '0') - } - - str() { - return ASCII_MAP[this.decData] - } -} - -const convent = (s, currentType, targetType) => { - const types = ['str', 'dec', 'hex', 'oct', 'bin']; - if (!types.includes(currentType) || !types.includes(targetType)) { - throw 'type error' - } - let r = []; - for (const c of s.split(currentType === "str" ? '' : ' ')) { - let ascii = new Ascii(c, currentType); - r.push(ascii[targetType]()) - } - return r.join(targetType === "str" ? '' : ' '); -} - -export default { - convent, - Ascii, - ascii_map: ASCII_MAP, - ascii_hidden: ASCII_HIDDEN, -} diff --git a/src/views/tool/library/binary.js b/src/views/tool/library/binary.js deleted file mode 100644 index 557a799..0000000 --- a/src/views/tool/library/binary.js +++ /dev/null @@ -1,122 +0,0 @@ -/** - * @link https://github.com/leizelong/binary - */ - - -function toFixed(d = '', length = 32, symbol = 0) { - if (d.length < length) { - return symbol + '0'.repeat(length - 1 - d.length) + d; - } - return d; -} - -class Binary { - constructor(length) { - this.length = length; - } - - getBinary(d) { - return Math.abs(parseInt(d)).toString(2); - } - - // 原码 - trueForm(d) { - const two = this.getBinary(d); - - if (d >= 0) { - return toFixed(two, this.length, 0); - } - return toFixed(two, this.length, 1); - } - - // 反码 - inverse(d) { - const trueForm = this.trueForm(d); - if (d >= 0) { - return trueForm; - } - let data = ''; - // eslint-disable-next-line no-plusplus - for (let index = 0; index < this.length; index++) { - const item = trueForm[index]; - if (index === 0) { - data += item; - } else { - data += Math.abs(+item - 1); - } - } - return data; - } - - // 补码 - complement(d) { - const trueForm = this.trueForm(d); - const inverse = this.inverse(d); - if (d >= 0) { - return trueForm; - } - const valid = inverse.slice(1); - const validTenComplete = parseInt(valid, 2) + 1; - return toFixed( - validTenComplete.toString(2), - this.length, - 1 - ); - } -} - -export default (input, length, type) => { - if (!["trueForm", "inverse", "complement"].includes(type)) { - throw new Error("type error") - } - if (![8, 16, 32].includes(length)) { - throw new Error("length error") - } - // 0 特殊处理 - if ( - input === "0" - || input === "+0" - || input === "-0" - ) { - if (type === "trueForm") { - return input === "-0" ? ("1" + Array(length).join("0")).slice(0, length - 1) : Array(length).join("0") - } - if (type === "inverse") { - return input === "-0" ? Array(length).join("1") : Array(length).join("0") - } - if (type === "complement") { - return input === "-0" ? Array(length).join("0") : Array(length).join("0") - } - return ""; - } - - input = parseInt(input); - switch (length) { - case 8: - if (!(input >= -128 && input <= 127)) { - throw new Error('length:8 input:-128 ~ 127') - } - break; - case 16: - if (!(input >= -32768 && input <= 32767)) { - throw new Error('length:16 input:-32768 ~ 32767') - } - break; - case 32: - if (!(input >= -2147483648 && input <= 2147483647)) { - throw new Error('length:32 input:-2147483648 ~ 2147483647') - } - break; - default: - throw new Error('length error') - } - let handle = (new Binary(length)) - switch (type) { - case "trueForm": - return handle.trueForm(input) - case "inverse": - return handle.inverse(input) - case "complement": - return handle.complement(input) - } -} diff --git a/src/views/tool/library/editor.js b/src/views/tool/library/editor.js deleted file mode 100644 index 7f71739..0000000 --- a/src/views/tool/library/editor.js +++ /dev/null @@ -1,127 +0,0 @@ -import CodeMirror from 'codemirror'; -import "codemirror/lib/codemirror.css"; -import 'codemirror/addon/fold/foldcode' -import "codemirror/addon/fold/foldgutter"; -import "codemirror/addon/fold/brace-fold"; -import "codemirror/addon/fold/comment-fold"; -import "codemirror/addon/fold/foldgutter.css"; -import 'codemirror/addon/merge/merge' -import 'codemirror/addon/merge/merge.css' -import "codemirror/addon/display/placeholder"; -import "codemirror/addon/search/search"; -import "codemirror/addon/search/searchcursor"; -import "codemirror/addon/search/jump-to-line"; -import "codemirror/addon/dialog/dialog"; -import "codemirror/addon/dialog/dialog.css"; -import "codemirror/mode/javascript/javascript.js"; -import "codemirror/mode/htmlmixed/htmlmixed.js"; -import "codemirror/mode/css/css.js"; -import "codemirror/mode/xml/xml.js"; -import "codemirror/mode/sql/sql.js"; -import "codemirror/mode/php/php.js"; -import "codemirror/mode/ruby/ruby.js"; -import "codemirror/mode/python/python.js"; -import "codemirror/mode/clike/clike.js"; -import "codemirror/mode/go/go.js"; -import "codemirror/mode/vue/vue.js"; -import "codemirror/mode/dart/dart.js"; -import "codemirror/mode/markdown/markdown.js"; -import "codemirror/mode/yaml/yaml.js"; -import "codemirror/mode/protobuf/protobuf.js"; -import 'codemirror-graphql/mode'; -import DiffMatchPatch from 'diff-match-patch' - -if (!("diff_match_patch" in window)) { - window["diff_match_patch"] = DiffMatchPatch - window['DIFF_DELETE'] = -1 - window['DIFF_INSERT'] = 1 - window['DIFF_EQUAL'] = 0 -} - -const modes = { - text: "text/plain", - json: "application/json", - js: "application/javascript", - html: "text/html", - xml: "application/xml", - css: "text/css", - less: "text/x-less", - scss: "text/x-scss", - graphql: "graphql", - java: "text/x-java", - ruby: "text/x-ruby", - markdown: "text/x-markdown", - php: "text/x-php", - python: "text/x-python", - sql: "text/x-sql", - yaml: "text/x-yaml", - ts: "application/typescript", - csharp: "text/x-csharp", - go: "text/x-go", - dart: "application/dart", - vue: "text/x-vue", - protobuf: "text/x-protobuf", -}; - -const modeConversion = (lang) => { - return lang && (lang in modes) ? modes[lang] : 'text/plain' -} - -export const allLang = Object.keys(modes) - -export const create = (container, lang, option = {}) => { - let editor = CodeMirror(container, - Object.assign({ - lineNumbers: true, - lineWrapping: true, - matchBrackets: true, - foldGutter: true, - smartIndent: true, - gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], - }, option, {mode: modeConversion(lang)}) - ); - editor['customSetEditorLanguage'] = (lang) => { - editor.setOption("mode", modeConversion(lang)); - } - return editor -} - -export const createMerge = (data, container, lang, option = {}) => { - let {original, modified} = data - let editor = CodeMirror.MergeView(container, - Object.assign( - { - mode: "application/javascript", - value: original, - orig: modified, - connect: 'align', - allowEditingOriginals: true, - lineNumbers: true, - }, - option, - {mode: modeConversion(lang)} - ) - ); - - editor['customSetEditorLanguage'] = (lang) => { - editor.edit.setOption("mode", modeConversion(lang)) - editor.right.orig.setOption("mode", modeConversion(lang)) - } - - editor['customSetValue'] = (value) => { - let {original, modified} = value - if (editor.edit.getValue() !== original || editor.right.orig.getValue() !== modified) { - editor.edit.setValue(original) - editor.right.orig.setValue(modified) - } - } - editor['customChange'] = (callback) => { - editor.edit.on('change', () => { - callback && callback(editor.edit.getValue(), editor.right.orig.getValue()) - }) - editor.right.orig.on('change', () => { - callback && callback(editor.edit.getValue(), editor.right.orig.getValue()) - }) - } - return editor -} diff --git a/src/views/tool/library/formatter.js b/src/views/tool/library/formatter.js deleted file mode 100644 index b225df8..0000000 --- a/src/views/tool/library/formatter.js +++ /dev/null @@ -1,41 +0,0 @@ -import prettier from "prettier/standalone"; -import parser from "prettier/parser-babel"; -import parserJson5 from "prettier/parser-babel"; -import parserTypeScript from "prettier/parser-typescript"; -import parserGraphql from "prettier/parser-graphql"; -import parserMarkdown from "prettier/parser-markdown"; -import parserCss from "prettier/parser-postcss"; -import parserYaml from "prettier/parser-yaml"; -import parserHtml from "prettier/parser-html"; -// import parserJava from "prettier-plugin-java"; -import parserSql from "prettier-plugin-sql"; -import parserPhp from "@prettier/plugin-php"; -// import parserXml from "@prettier/plugin-xml"; - -//https://github.com/prettier/prettier/issues/6264#issuecomment-507535391 -const options = { - js: {parser: "babel", plugins: [parser]}, - ts: {parser: "typescript", plugins: [parserTypeScript]}, - vue: {parser: "vue", plugins: [parserHtml]}, - graphql: {parser: "graphql", plugins: [parserGraphql]}, - markdown: {parser: "markdown", plugins: [parserMarkdown]}, - css: {parser: "css", plugins: [parserCss]}, - less: {parser: "less", plugins: [parserCss]}, - scss: {parser: "scss", plugins: [parserCss]}, - yaml: {parser: "yaml", plugins: [parserYaml]}, - html: {parser: "html", plugins: [parserHtml]}, - angular: {parser: "angular", plugins: [parserHtml]}, - json: {parser: "json5", plugins: [parserJson5], quoteProps: "preserve", trailingComma: "none"}, - // xml: {parser: "xml", plugins: [parserXml]}, - sql: {parser: "sql", plugins: [parserSql]}, - php: {parser: "php", plugins: [parserPhp]}, - // java: {parser: "java", plugins: [parserJava]}, -}; -export default (code, lang, {tab = 4}) => { - if (!(lang in options)) { - throw new Error(`${lang} can't format`); - } - let langOption = options[lang]; - langOption.tabWidth = tab - return prettier.format(code, langOption); -}; diff --git a/src/views/tool/library/formatter/angular.js b/src/views/tool/library/formatter/angular.js deleted file mode 100644 index 2b39033..0000000 --- a/src/views/tool/library/formatter/angular.js +++ /dev/null @@ -1,14 +0,0 @@ -import prettier from "prettier/standalone"; -import parserHtml from "prettier/parser-html"; - -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parserHtml], - parser: "angular", - tabWidth: "tab" in option ? option.tab : 4 - }); -} - -export default { - beautify -} diff --git a/src/views/tool/library/formatter/css.js b/src/views/tool/library/formatter/css.js deleted file mode 100644 index f223122..0000000 --- a/src/views/tool/library/formatter/css.js +++ /dev/null @@ -1,20 +0,0 @@ -import prettier from "prettier/standalone"; -import parserCss from "prettier/parser-postcss"; -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parserCss], - parser: "css", - tabWidth: "tab" in option ? option.tab : 4 - }); -} - -// eslint-disable-next-line no-unused-vars -export const compress = (code, options = {}) => { - return code - // .replace(/\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\//g, "") // 移除注释 - .replace(/\s+/g, " ").replace(/{\s+/g, "{").replace(/}\s+/g, "}").replace(/;\s+/g, ";").replace(/\/\*\s+/g, "/*").replace(/\*\/\s+/g, "*/") -} - -export default { - beautify,compress -} diff --git a/src/views/tool/library/formatter/graphql.js b/src/views/tool/library/formatter/graphql.js deleted file mode 100644 index ae578c3..0000000 --- a/src/views/tool/library/formatter/graphql.js +++ /dev/null @@ -1,13 +0,0 @@ -import prettier from "prettier/standalone"; -import parserGraphql from "prettier/parser-graphql"; -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parserGraphql], - parser: "graphql", - tabWidth: "tab" in option ? option.tab : 4 - }); -} - -export default { - beautify -} diff --git a/src/views/tool/library/formatter/html.js b/src/views/tool/library/formatter/html.js deleted file mode 100644 index d744b63..0000000 --- a/src/views/tool/library/formatter/html.js +++ /dev/null @@ -1,34 +0,0 @@ -import prettier from "prettier/standalone"; -import parserHtml from "prettier/parser-html"; - -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parserHtml], - parser: "html", - tabWidth: "tab" in option ? option.tab : 4 - }); -} -// eslint-disable-next-line no-unused-vars -export const compress = (code, options = {}) => { - let headHTML = ""; - code = code.replace(/(\r\n|\n|\r|\t)/gm, ""); - code = code.replace(/\s+/g, " "); - code = code.replace(new RegExp(" { - let method = isCompress ? "compress" : "beautify"; - if (!(lang in methods) || !(method in methods[lang])){ - throw new Error(`lang:"${lang}" not support ${method}`); - } - return methods[lang][method](code,options) -}; - -export default format - diff --git a/src/views/tool/library/formatter/javascript.js b/src/views/tool/library/formatter/javascript.js deleted file mode 100644 index a2a1ddc..0000000 --- a/src/views/tool/library/formatter/javascript.js +++ /dev/null @@ -1,32 +0,0 @@ -import prettier from "prettier/standalone"; -import parser from "prettier/parser-babel"; - -// https://github.com/mishoo/UglifyJS/issues/4878 -// eslint-disable-next-line import/no-unresolved, import/extensions, import/no-webpack-loader-syntax -import UglifyJS from './uglify'; -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parser], - parser: "babel", - tabWidth: "tab" in option ? option.tab : 4 - }); -} -// eslint-disable-next-line no-unused-vars -export const compress = (code, options = {}) => { - let result = UglifyJS.minify(code, { - keep_fnames: true, - compress: false, - mangle: false, - output: { - beautify: false, - } - }) - if (!("code" in result) || !result.code){ - throw new Error("compress error:"+JSON.stringify(result.error)) - } - return result.code -} - -export default { - beautify,compress -} diff --git a/src/views/tool/library/formatter/json.js b/src/views/tool/library/formatter/json.js deleted file mode 100644 index 03f7196..0000000 --- a/src/views/tool/library/formatter/json.js +++ /dev/null @@ -1,30 +0,0 @@ -import prettier from "prettier/standalone"; -import parserJson5 from "prettier/parser-babel"; - -export const beautify = (code, {tab = 4} = {}) => { - return prettier.format(code, { - parser: "json5", - plugins: [parserJson5], - quoteProps: "preserve", - trailingComma: "none", - tabWidth: tab, - printWidth: 1 - }) -} -export const objectBeautify = (codeObject, option = {}) => { - return beautify(JSON.stringify(codeObject), option) -} -// eslint-disable-next-line no-unused-vars -export const compress = (code, options = {}) => { - let result = [] - for (let i = !1, o = 0, r = (code = code.split("\n").join(" ")).length; o < r; o++) { - let a = code.charAt(o); - i && a === i ? "\\" !== code.charAt(o - 1) && (i = !1) : i || '"' !== a && "'" !== a ? i || " " !== a && "\t" !== a || (a = "") : i = a - result.push(a) - } - return result.join("") -} - -export default { - beautify, compress, objectBeautify -} diff --git a/src/views/tool/library/formatter/less.js b/src/views/tool/library/formatter/less.js deleted file mode 100644 index 8fbc9b7..0000000 --- a/src/views/tool/library/formatter/less.js +++ /dev/null @@ -1,13 +0,0 @@ -import prettier from "prettier/standalone"; -import parserCss from "prettier/parser-postcss"; -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parserCss], - parser: "less", - tabWidth: "tab" in option ? option.tab : 4 - }); -} - -export default { - beautify -} diff --git a/src/views/tool/library/formatter/markdown.js b/src/views/tool/library/formatter/markdown.js deleted file mode 100644 index bc6f298..0000000 --- a/src/views/tool/library/formatter/markdown.js +++ /dev/null @@ -1,14 +0,0 @@ -import prettier from "prettier/standalone"; -import parser from "prettier/parser-markdown"; - -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parser], - parser: "markdown", - tabWidth: "tab" in option ? option.tab : 4 - }); -} - -export default { - beautify -} diff --git a/src/views/tool/library/formatter/php.js b/src/views/tool/library/formatter/php.js deleted file mode 100644 index 5f830ff..0000000 --- a/src/views/tool/library/formatter/php.js +++ /dev/null @@ -1,13 +0,0 @@ -import prettier from "prettier/standalone"; -import phpPlugin from "@prettier/plugin-php/standalone"; -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [phpPlugin], - parser: "php", - tabWidth: "tab" in option ? option.tab : 4 - }); -} - -export default { - beautify -} diff --git a/src/views/tool/library/formatter/scss.js b/src/views/tool/library/formatter/scss.js deleted file mode 100644 index 4cc4aa3..0000000 --- a/src/views/tool/library/formatter/scss.js +++ /dev/null @@ -1,13 +0,0 @@ -import prettier from "prettier/standalone"; -import parserCss from "prettier/parser-postcss"; -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parserCss], - parser: "scss", - tabWidth: "tab" in option ? option.tab : 4 - }); -} - -export default { - beautify -} diff --git a/src/views/tool/library/formatter/sql.js b/src/views/tool/library/formatter/sql.js deleted file mode 100644 index dee375b..0000000 --- a/src/views/tool/library/formatter/sql.js +++ /dev/null @@ -1,17 +0,0 @@ -import prettier from "prettier/standalone"; -import parserSql from "prettier-plugin-sql"; -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parserSql], - parser: "sql", - tabWidth: "tab" in option ? option.tab : 4 - }); -} -// eslint-disable-next-line no-unused-vars -export const compress = (code, options = {}) => { - return code.replace(/\s+/g, " ").replace(/\s+\(/, "(").replace(/\s+\)/, ")") -} - -export default { - beautify,compress -} diff --git a/src/views/tool/library/formatter/typescript.js b/src/views/tool/library/formatter/typescript.js deleted file mode 100644 index 462f2e7..0000000 --- a/src/views/tool/library/formatter/typescript.js +++ /dev/null @@ -1,13 +0,0 @@ -import prettier from "prettier/standalone"; -import parserTypeScript from "prettier/parser-typescript"; -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parserTypeScript], - parser: "typescript", - tabWidth: "tab" in option ? option.tab : 4 - }); -} - -export default { - beautify -} diff --git a/src/views/tool/library/formatter/uglify.js b/src/views/tool/library/formatter/uglify.js deleted file mode 100644 index 7e5ad41..0000000 --- a/src/views/tool/library/formatter/uglify.js +++ /dev/null @@ -1,12702 +0,0 @@ -/* eslint-disable */ -const UglifyJS = {} -!function(_) { - "use strict"; - function e(e) { - return e.split(""); - } - function qn(e, n) { - return 0 <= n.indexOf(e); - } - function Cn(e, n) { - for (var t = n.length; 0 <= --t; ) if (e(n[t])) return n[t]; - } - function n(e) { - Object.defineProperty(e.prototype, "stack", { - get: function() { - var e = new Error(this.message); - e.name = this.name; - try { - throw e; - } catch (e) { - return e.stack; - } - } - }); - } - function r(e, n) { - this.message = e, this.defs = n; - } - function oe(e, n, t) { - if (t) for (var i in e) if (Vn(e, i) && !Vn(n, i)) throw new r("`" + i + "` is not a supported option", n); - for (var i in e) Vn(e, i) && (n[i] = e[i]); - return n; - } - function t(e, n) { - var t, i = 0; - for (t in n) Vn(n, t) && (e[t] = n[t], i++); - return i; - } - function Mn() {} - function Fn() { - return !1; - } - function jn() { - return !0; - } - function Pn() { - return this; - } - function Nn() { - return null; - } - ((r.prototype = Object.create(Error.prototype)).constructor = r).prototype.name = "DefaultsError", - n(r); - var In = function() { - function e(e, n) { - for (var t = [], i = 0; i < e.length; i++) { - var r = n(e[i], i); - r !== o && (r instanceof a ? t.push.apply(t, r.v) : t.push(r)); - } - return t; - } - e.is_op = function(e) { - return e === o || e instanceof a; - }, e.splice = function(e) { - return new a(e); - }; - var o = e.skip = {}; - function a(e) { - this.v = e; - } - return e; - }(); - function Hn(e, n) { - if (e.indexOf(n) < 0) return e.push(n); - } - function Yn(e, t) { - return e.replace(/\{([^{}]+)\}/g, function(e, n) { - n = t[n]; - return n instanceof Gn ? n.print_to_string() : n; - }); - } - function Rn(e, n) { - n = e.indexOf(n); - 0 <= n && e.splice(n, 1); - } - function Bn(e) { - Array.isArray(e) || (e = e.split(" ")); - var n = Object.create(null); - return e.forEach(function(e) { - n[e] = !0; - }), n; - } - function Ln(e, n) { - for (var t = e.length; 0 <= --t; ) if (!n(e[t], t)) return !1; - return !0; - } - function Un() { - this._values = Object.create(null), this._size = 0; - } - function Vn(e, n) { - return Object.prototype.hasOwnProperty.call(e, n); - } - function Wn(e, n, t) { - for (var i, r = e.parent(-1), o = 0; i = e.parent(o++); r = i) { - if (yt(i)) return n && i.value === r; - if (i instanceof ki) { - if (i.left === r) continue; - } else if ("Call" == i.TYPE) { - if (i.expression === r) continue; - } else if (i instanceof Ei) { - if (i.condition === r) continue; - } else { - if (i instanceof fi) return t; - if (i instanceof mi) { - if (i.expression === r) continue; - } else if (i instanceof hi) { - if (i.expressions[0] === r) continue; - } else { - if (i instanceof et) return !0; - if (i instanceof tr) { - if (i.tag === r) continue; - } else if (i instanceof xi && i.expression === r) continue; - } - } - return !1; - } - } - function i(e, n, t, i) { - void 0 === i && (i = Gn); - var r = n = n ? n.split(/\s+/) : []; - i && i.PROPS && (n = n.concat(i.PROPS)); - var o = [ "return function AST_", e, "(props){", "if(props){" ]; - n.forEach(function(e) { - o.push("this.", e, "=props.", e, ";"); - }), o.push("}"); - var a = Object.create(i && i.prototype); - (t.initialize || a.initialize) && o.push("this.initialize();"), o.push("};"); - var s, f = new Function(o.join(""))(); - for (s in f.prototype = a, (f.prototype.CTOR = f).prototype.TYPE = f.TYPE = e, i && (f.BASE = i).SUBCLASSES.push(f), - f.DEFMETHOD = function(e, n) { - this.prototype[e] = n; - }, f.PROPS = n, f.SELF_PROPS = r, f.SUBCLASSES = [], t) Vn(t, s) && (/^\$/.test(s) ? f[s.substr(1)] = t[s] : f.DEFMETHOD(s, t[s])); - return void 0 !== _ && (_["AST_" + e] = f), f; - } - Un.prototype = { - set: function(e, n) { - return this.has(e) || ++this._size, this._values["$" + e] = n, this; - }, - add: function(e, n) { - return this.has(e) ? this.get(e).push(n) : this.set(e, [ n ]), this; - }, - get: function(e) { - return this._values["$" + e]; - }, - del: function(e) { - return this.has(e) && (--this._size, delete this._values["$" + e]), this; - }, - has: function(e) { - return "$" + e in this._values; - }, - all: function(e) { - for (var n in this._values) if (!e(this._values[n], n.substr(1))) return !1; - return !0; - }, - each: function(e) { - for (var n in this._values) e(this._values[n], n.substr(1)); - }, - size: function() { - return this._size; - }, - map: function(e) { - var n, t = []; - for (n in this._values) t.push(e(this._values[n], n.substr(1))); - return t; - }, - clone: function() { - var e, n = new Un(); - for (e in this._values) n._values[e] = this._values[e]; - return n._size = this._size, n; - }, - toObject: function() { - return this._values; - } - }, Un.fromObject = function(e) { - var n = new Un(); - return n._size = t(n._values, e), n; - }; - var Y = i("Token", "type value line col pos endline endcol endpos nlb comments_before comments_after file raw", {}, null), Gn = i("Node", "start end", { - _clone: function(e) { - if (e) { - var n = this.clone(); - return n.transform(new _r(function(e) { - if (e !== n) return e.clone(!0); - })); - } - return new this.CTOR(this); - }, - clone: function(e) { - return this._clone(e); - }, - $documentation: "Base class of all AST nodes", - $propdoc: { - start: "[AST_Token] The first token of this node", - end: "[AST_Token] The last token of this node" - }, - walk: function(e) { - e.visit(this); - }, - _validate: function() { - if ("Node" == this.TYPE) throw new Error("should not instantiate AST_Node"); - }, - validate: function() { - for (var e = this.CTOR; e.prototype._validate.call(this), e = e.BASE; ); - }, - validate_ast: function() { - var n = {}; - this.walk(new mr(function(e) { - if (e.validate_visited === n) throw new Error(Yn("cannot reuse {type} from [{file}:{line},{col}]", { - type: "AST_" + e.TYPE, - file: e.start.file, - line: e.start.line, - col: e.start.col - })); - e.validate_visited = n; - })); - } - }, null); - (Gn.log_function = function(n, e) { - var t; - function i(e) { - t[e] || (t[e] = !0, n(e)); - } - "function" == typeof n ? (t = Object.create(null), Gn.info = e ? function(e, n) { - i("INFO: " + Yn(e, n)); - } : Mn, Gn.warn = function(e, n) { - i("WARN: " + Yn(e, n)); - }) : Gn.info = Gn.warn = Mn; - })(); - var o = []; - Gn.enable_validation = function() { - Gn.disable_validation(), function e(n) { - var t; - n.SUBCLASSES.forEach(e), Vn(n.prototype, "transform") && (t = n.prototype.transform, - n.prototype.transform = function(e, n) { - e = t.call(this, e, n); - if (e instanceof Gn) e.validate(); else if (!(null === e || n && In.is_op(e))) throw new Error("invalid transformed value: " + e); - return e; - }, o.push(function() { - n.prototype.transform = t; - })); - }(this); - }, Gn.disable_validation = function() { - for (var e; e = o.pop(); ) e(); - }; - var Jn = i("Statement", null, { - $documentation: "Base class of all statements", - _validate: function() { - if ("Statement" == this.TYPE) throw new Error("should not instantiate AST_Statement"); - } - }), Xn = i("Debugger", null, { - $documentation: "Represents a debugger statement" - }, Jn), Kn = i("Directive", "quote value", { - $documentation: 'Represents a directive, like "use strict";', - $propdoc: { - quote: "[string?] the original quote character", - value: "[string] The value of this directive as a plain string (it's not an AST_String!)" - }, - _validate: function() { - if (null != this.quote) { - if ("string" != typeof this.quote) throw new Error("quote must be string"); - if (!/^["']$/.test(this.quote)) throw new Error("invalid quote: " + this.quote); - } - if ("string" != typeof this.value) throw new Error("value must be string"); - } - }, Jn), Qn = i("EmptyStatement", null, { - $documentation: "The empty statement (empty block or simply a semicolon)" - }, Jn); - function Zn(e) { - return e instanceof Jn && !(e instanceof Pt) && !(e instanceof bt); - } - function a(e, n, t, i, r) { - if (t = t ? "contain" : "be", !(e instanceof Gn)) throw new Error(n + " must " + t + " AST_Node"); - if (e instanceof li) throw new Error(n + " cannot " + t + " AST_DefaultValue"); - if (e instanceof Oi) throw new Error(n + " cannot " + t + " AST_Destructured"); - if (e instanceof lr && !r) throw new Error(n + " cannot " + t + " AST_Hole"); - if (e instanceof bi && !i) throw new Error(n + " cannot " + t + " AST_Spread"); - if (Zn(e)) throw new Error(n + " cannot " + t + " AST_Statement"); - if (e instanceof Hi) throw new Error(n + " cannot " + t + " AST_SymbolDeclaration"); - } - function s(e, n) { - a(e[n], n); - } - var et = i("SimpleStatement", "body", { - $documentation: "A statement consisting of an expression, i.e. a = 1 + 2", - $propdoc: { - body: "[AST_Node] an expression node (should not be instanceof AST_Statement)" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.body.walk(e); - }); - }, - _validate: function() { - s(this, "body"); - } - }, Jn), nt = i("BlockScope", "enclosed functions make_def parent_scope variables", { - $documentation: "Base class for all statements introducing a lexical scope", - $propdoc: { - enclosed: "[SymbolDef*/S] a list of all symbol definitions that are accessed from this scope or any subscopes", - functions: "[Dictionary/S] like `variables`, but only lists function declarations", - parent_scope: "[AST_Scope?/S] link to the parent scope", - variables: "[Dictionary/S] a map of name ---\x3e SymbolDef for all variables/functions defined in this scope" - }, - clone: function(e) { - e = this._clone(e); - return this.enclosed && (e.enclosed = this.enclosed.slice()), this.functions && (e.functions = this.functions.clone()), - this.variables && (e.variables = this.variables.clone()), e; - }, - pinned: function() { - return this.resolve().pinned(); - }, - resolve: function() { - return this.parent_scope.resolve(); - }, - _validate: function() { - if ("BlockScope" == this.TYPE) throw new Error("should not instantiate AST_BlockScope"); - if (null != this.parent_scope) { - if (!(this.parent_scope instanceof nt)) throw new Error("parent_scope must be AST_BlockScope"); - if (!(this.resolve() instanceof vt)) throw new Error("must be contained within AST_Scope"); - } - } - }, Jn); - function tt(e, n) { - e.body.forEach(function(e) { - e.walk(n); - }); - } - var it = i("Block", "body", { - $documentation: "A body of statements (usually braced)", - $propdoc: { - body: "[AST_Statement*] an array of statements" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - tt(n, e); - }); - }, - _validate: function() { - if ("Block" == this.TYPE) throw new Error("should not instantiate AST_Block"); - this.body.forEach(function(e) { - if (!Zn(e)) throw new Error("body must contain AST_Statement"); - }); - } - }, nt), rt = i("BlockStatement", null, { - $documentation: "A block statement" - }, it), F = i("StatementWithBody", "body", { - $documentation: "Base class for all statements that contain one nested body: `For`, `ForIn`, `Do`, `While`, `With`", - $propdoc: { - body: "[AST_Statement] the body; this should always be present, even if it's an AST_EmptyStatement" - }, - _validate: function() { - if ("StatementWithBody" == this.TYPE) throw new Error("should not instantiate AST_StatementWithBody"); - if (!Zn(this.body)) throw new Error("body must be AST_Statement"); - } - }, nt), ot = i("LabeledStatement", "label", { - $documentation: "Statement with a label", - $propdoc: { - label: "[AST_Label] a label definition" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.label.walk(e), n.body.walk(e); - }); - }, - clone: function(e) { - var n, t, i = this._clone(e); - return e && (n = i.label, t = this.label, i.walk(new mr(function(e) { - return e instanceof Ut ? e.label && e.label.thedef === t ? ((e.label.thedef = n).references.push(e), - !0) : void 0 : e instanceof vt || void 0; - }))), i; - }, - _validate: function() { - if (!(this.label instanceof le)) throw new Error("label must be AST_Label"); - } - }, F), at = i("IterationStatement", null, { - $documentation: "Internal class. All loops inherit from it.", - _validate: function() { - if ("IterationStatement" == this.TYPE) throw new Error("should not instantiate AST_IterationStatement"); - } - }, F), st = i("DWLoop", "condition", { - $documentation: "Base class for do/while statements", - $propdoc: { - condition: "[AST_Node] the loop condition. Should not be instanceof AST_Statement" - }, - _validate: function() { - if ("DWLoop" == this.TYPE) throw new Error("should not instantiate AST_DWLoop"); - s(this, "condition"); - } - }, at), ft = i("Do", null, { - $documentation: "A `do` statement", - walk: function(e) { - var n = this; - e.visit(n, function() { - n.body.walk(e), n.condition.walk(e); - }); - } - }, st), ct = i("While", null, { - $documentation: "A `while` statement", - walk: function(e) { - var n = this; - e.visit(n, function() { - n.condition.walk(e), n.body.walk(e); - }); - } - }, st), ut = i("For", "init condition step", { - $documentation: "A `for` statement", - $propdoc: { - init: "[AST_Node?] the `for` initialization code, or null if empty", - condition: "[AST_Node?] the `for` termination clause, or null if empty", - step: "[AST_Node?] the `for` update clause, or null if empty" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.init && n.init.walk(e), n.condition && n.condition.walk(e), n.step && n.step.walk(e), - n.body.walk(e); - }); - }, - _validate: function() { - if (null != this.init) { - if (!(this.init instanceof Gn)) throw new Error("init must be AST_Node"); - if (Zn(this.init) && !(this.init instanceof ti)) throw new Error("init cannot be AST_Statement"); - } - null != this.condition && s(this, "condition"), null != this.step && s(this, "step"); - } - }, at), lt = i("ForEnumeration", "init object", { - $documentation: "Base class for enumeration loops, i.e. `for ... in`, `for ... of` & `for await ... of`", - $propdoc: { - init: "[AST_Node] the assignment target during iteration", - object: "[AST_Node] the object to iterate over" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.init.walk(e), n.object.walk(e), n.body.walk(e); - }); - }, - _validate: function() { - if ("ForEnumeration" == this.TYPE) throw new Error("should not instantiate AST_ForEnumeration"); - if (this.init instanceof ti) { - if (1 != this.init.definitions.length) throw new Error("init must have single declaration"); - } else c(this.init, function(e) { - if (!(e instanceof mi || e instanceof Xi)) throw new Error("init must be assignable: " + e.TYPE); - }); - s(this, "object"); - } - }, at), pt = i("ForIn", null, { - $documentation: "A `for ... in` statement" - }, lt), ae = i("ForOf", null, { - $documentation: "A `for ... of` statement" - }, lt), dt = i("ForAwaitOf", null, { - $documentation: "A `for await ... of` statement" - }, ae), ht = i("With", "expression", { - $documentation: "A `with` statement", - $propdoc: { - expression: "[AST_Node] the `with` expression" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.expression.walk(e), n.body.walk(e); - }); - }, - _validate: function() { - s(this, "expression"); - } - }, F), vt = i("Scope", "uses_eval uses_with", { - $documentation: "Base class for all statements introducing a lexical scope", - $propdoc: { - uses_eval: "[boolean/S] tells whether this scope contains a direct call to the global `eval`", - uses_with: "[boolean/S] tells whether this scope uses the `with` statement" - }, - pinned: function() { - return this.uses_eval || this.uses_with; - }, - resolve: Pn, - _validate: function() { - if ("Scope" == this.TYPE) throw new Error("should not instantiate AST_Scope"); - } - }, it), mt = i("Toplevel", "globals", { - $documentation: "The toplevel scope", - $propdoc: { - globals: "[Dictionary/S] a map of name ---\x3e SymbolDef for all undeclared names" - }, - wrap: function(e) { - var n = this.body; - return kr([ "(function(exports){'$ORIG';})(typeof ", e, "=='undefined'?(", e, "={}):", e, ");" ].join(""), { - filename: "wrap=" + JSON.stringify(e) - }).transform(new _r(function(e) { - if (e instanceof Kn && "$ORIG" == e.value) return In.splice(n); - })); - }, - enclose: function(e) { - var n = (e = "string" != typeof e ? "" : e).indexOf(":"); - n < 0 && (n = e.length); - var t = this.body; - return kr([ "(function(", e.slice(0, n), '){"$ORIG"})(', e.slice(n + 1), ")" ].join(""), { - filename: "enclose=" + JSON.stringify(e) - }).transform(new _r(function(e) { - if (e instanceof Kn && "$ORIG" == e.value) return In.splice(t); - })); - } - }, vt), _t = i("Lambda", "argnames length_read rest uses_arguments", { - $documentation: "Base class for functions", - $propdoc: { - argnames: "[(AST_DefaultValue|AST_Destructured|AST_SymbolFunarg)*] array of function arguments and/or destructured literals", - length_read: "[boolean/S] whether length property of this function is accessed", - rest: "[(AST_Destructured|AST_SymbolFunarg)?] rest parameter, or null if absent", - uses_arguments: "[boolean/S] whether this function accesses the arguments array" - }, - each_argname: function(n) { - var t = new mr(function(e) { - return e instanceof li ? (e.name.walk(t), !0) : e instanceof zi ? (e.value.walk(t), - !0) : void (e instanceof Ui && n(e)); - }); - this.argnames.forEach(function(e) { - e.walk(t); - }), this.rest && this.rest.walk(t); - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.name && e.name.walk(n), e.argnames.forEach(function(e) { - e.walk(n); - }), e.rest && e.rest.walk(n), tt(e, n); - }); - }, - _validate: function() { - if ("Lambda" == this.TYPE) throw new Error("should not instantiate AST_Lambda"); - this.argnames.forEach(function(e) { - c(e, function(e) { - if (!(e instanceof Ui)) throw new Error("argnames must be AST_SymbolFunarg[]"); - }, !0); - }), null != this.rest && c(this.rest, function(e) { - if (!(e instanceof Ui)) throw new Error("rest must be AST_SymbolFunarg"); - }); - } - }, vt), gt = i("Accessor", null, { - $documentation: "A getter/setter function", - _validate: function() { - if (null != this.name) throw new Error("name must be null"); - } - }, _t), bt = i("LambdaExpression", "inlined", { - $documentation: "Base class for function expressions", - $propdoc: { - inlined: "[boolean/S] whether this function has been inlined" - }, - _validate: function() { - if ("LambdaExpression" == this.TYPE) throw new Error("should not instantiate AST_LambdaExpression"); - } - }, _t); - function yt(e) { - return e instanceof Et || e instanceof St; - } - function wt(e) { - return e instanceof St || e instanceof zt || e instanceof Tt || e instanceof qt || e instanceof At; - } - function xt(e) { - return e instanceof qt || e instanceof At || e instanceof Mt || e instanceof Ot; - } - function kt(e, n) { - yt(e) && e.value ? e.value.walk(n) : tt(e, n); - } - var Et = i("Arrow", "value", { - $documentation: "An arrow function expression", - $propdoc: { - value: "[AST_Node?] simple return expression, or null if using function body." - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.argnames.forEach(function(e) { - e.walk(n); - }), e.rest && e.rest.walk(n), e.value ? e.value.walk(n) : tt(e, n); - }); - }, - _validate: function() { - if (null != this.name) throw new Error("name must be null"); - if (this.uses_arguments) throw new Error("uses_arguments must be false"); - if (null != this.value && (s(this, "value"), this.body.length)) throw new Error("body must be empty if value exists"); - } - }, bt), St = i("AsyncArrow", "value", { - $documentation: "An asynchronous arrow function expression", - $propdoc: { - value: "[AST_Node?] simple return expression, or null if using function body." - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.argnames.forEach(function(e) { - e.walk(n); - }), e.rest && e.rest.walk(n), e.value ? e.value.walk(n) : tt(e, n); - }); - }, - _validate: function() { - if (null != this.name) throw new Error("name must be null"); - if (this.uses_arguments) throw new Error("uses_arguments must be false"); - if (null != this.value && (s(this, "value"), this.body.length)) throw new Error("body must be empty if value exists"); - } - }, bt), Tt = i("AsyncFunction", "name", { - $documentation: "An asynchronous function expression", - $propdoc: { - name: "[AST_SymbolLambda?] the name of this function, or null if not specified" - }, - _validate: function() { - if (null != this.name && !(this.name instanceof Wi)) throw new Error("name must be AST_SymbolLambda"); - } - }, bt), At = i("AsyncGeneratorFunction", "name", { - $documentation: "An asynchronous generator function expression", - $propdoc: { - name: "[AST_SymbolLambda?] the name of this function, or null if not specified" - }, - _validate: function() { - if (null != this.name && !(this.name instanceof Wi)) throw new Error("name must be AST_SymbolLambda"); - } - }, bt), Dt = i("Function", "name", { - $documentation: "A function expression", - $propdoc: { - name: "[AST_SymbolLambda?] the name of this function, or null if not specified" - }, - _validate: function() { - if (null != this.name && !(this.name instanceof Wi)) throw new Error("name must be AST_SymbolLambda"); - } - }, bt), Ot = i("GeneratorFunction", "name", { - $documentation: "A generator function expression", - $propdoc: { - name: "[AST_SymbolLambda?] the name of this function, or null if not specified" - }, - _validate: function() { - if (null != this.name && !(this.name instanceof Wi)) throw new Error("name must be AST_SymbolLambda"); - } - }, bt), $t = i("LambdaDefinition", "inlined name", { - $documentation: "Base class for function definitions", - $propdoc: { - inlined: "[boolean/S] whether this function has been inlined", - name: "[AST_SymbolDefun] the name of this function" - }, - _validate: function() { - if ("LambdaDefinition" == this.TYPE) throw new Error("should not instantiate AST_LambdaDefinition"); - if (!(this.name instanceof Vi)) throw new Error("name must be AST_SymbolDefun"); - } - }, _t), zt = i("AsyncDefun", null, { - $documentation: "An asynchronous function definition" - }, $t), qt = i("AsyncGeneratorDefun", null, { - $documentation: "An asynchronous generator function definition" - }, $t), Ct = i("Defun", null, { - $documentation: "A function definition" - }, $t), Mt = i("GeneratorDefun", null, { - $documentation: "A generator function definition" - }, $t), Ft = i("Class", "extends name properties", { - $documentation: "Base class for class literals", - $propdoc: { - extends: "[AST_Node?] the super class, or null if not specified", - properties: "[AST_ClassProperty*] array of class properties" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.name && e.name.walk(n), e.extends && e.extends.walk(n), e.properties.forEach(function(e) { - e.walk(n); - }); - }); - }, - _validate: function() { - if ("Class" == this.TYPE) throw new Error("should not instantiate AST_Class"); - null != this.extends && s(this, "extends"), this.properties.forEach(function(e) { - if (!(e instanceof Nt)) throw new Error("properties must contain AST_ClassProperty"); - }); - } - }, nt), jt = i("DefClass", null, { - $documentation: "A class definition", - $propdoc: { - name: "[AST_SymbolDefClass] the name of this class" - }, - _validate: function() { - if (!(this.name instanceof ue)) throw new Error("name must be AST_SymbolDefClass"); - } - }, Ft), Pt = i("ClassExpression", null, { - $documentation: "A class expression", - $propdoc: { - name: "[AST_SymbolClass?] the name of this class, or null if not specified" - }, - _validate: function() { - if (null != this.name && !(this.name instanceof Gi)) throw new Error("name must be AST_SymbolClass"); - } - }, Ft), Nt = i("ClassProperty", "key private static value", { - $documentation: "Base class for `class` properties", - $propdoc: { - key: "[string|AST_Node] property name (AST_Node for computed property)", - private: "[boolean] whether this is a private property", - static: "[boolean] whether this is a static property", - value: "[AST_Node?] property value (AST_Accessor for getters/setters, AST_LambdaExpression for methods, null if not specified for fields)" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.key instanceof Gn && n.key.walk(e), n.value && n.value.walk(e); - }); - }, - _validate: function() { - if ("ClassProperty" == this.TYPE) throw new Error("should not instantiate AST_ClassProperty"); - if ("string" != typeof this.key) { - if (!(this.key instanceof Gn)) throw new Error("key must be string or AST_Node"); - s(this, "key"); - } - if (null != this.value && !(this.value instanceof Gn)) throw new Error("value must be AST_Node"); - } - }), It = i("ClassField", null, { - $documentation: "A `class` field", - _validate: function() { - null != this.value && s(this, "value"); - } - }, Nt), se = i("ClassGetter", null, { - $documentation: "A `class` getter", - _validate: function() { - if (!(this.value instanceof gt)) throw new Error("value must be AST_Accessor"); - } - }, Nt), fe = i("ClassSetter", null, { - $documentation: "A `class` setter", - _validate: function() { - if (!(this.value instanceof gt)) throw new Error("value must be AST_Accessor"); - } - }, Nt), Ht = i("ClassMethod", null, { - $documentation: "A `class` method", - _validate: function() { - if (!(this.value instanceof bt)) throw new Error("value must be AST_LambdaExpression"); - if (yt(this.value)) throw new Error("value cannot be AST_Arrow or AST_AsyncArrow"); - if (null != this.value.name) throw new Error("name of class method's lambda must be null"); - } - }, Nt), Yt = i("Jump", null, { - $documentation: "Base class for “jumps” (for now that's `return`, `throw`, `break` and `continue`)", - _validate: function() { - if ("Jump" == this.TYPE) throw new Error("should not instantiate AST_Jump"); - } - }, Jn), Rt = i("Exit", "value", { - $documentation: "Base class for “exits” (`return` and `throw`)", - $propdoc: { - value: "[AST_Node?] the value returned or thrown by this statement; could be null for AST_Return" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.value && n.value.walk(e); - }); - }, - _validate: function() { - if ("Exit" == this.TYPE) throw new Error("should not instantiate AST_Exit"); - } - }, Yt), Bt = i("Return", null, { - $documentation: "A `return` statement", - _validate: function() { - null != this.value && s(this, "value"); - } - }, Rt), Lt = i("Throw", null, { - $documentation: "A `throw` statement", - _validate: function() { - s(this, "value"); - } - }, Rt), Ut = i("LoopControl", "label", { - $documentation: "Base class for loop control statements (`break` and `continue`)", - $propdoc: { - label: "[AST_LabelRef?] the label, or null if none" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.label && n.label.walk(e); - }); - }, - _validate: function() { - if ("LoopControl" == this.TYPE) throw new Error("should not instantiate AST_LoopControl"); - if (null != this.label && !(this.label instanceof pe)) throw new Error("label must be AST_LabelRef"); - } - }, Yt), Vt = i("Break", null, { - $documentation: "A `break` statement" - }, Ut), Wt = i("Continue", null, { - $documentation: "A `continue` statement" - }, Ut), Gt = i("If", "condition alternative", { - $documentation: "A `if` statement", - $propdoc: { - condition: "[AST_Node] the `if` condition", - alternative: "[AST_Statement?] the `else` part, or null if not present" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.condition.walk(e), n.body.walk(e), n.alternative && n.alternative.walk(e); - }); - }, - _validate: function() { - if (s(this, "condition"), null != this.alternative && !Zn(this.alternative)) throw new Error("alternative must be AST_Statement"); - } - }, F), Jt = i("Switch", "expression", { - $documentation: "A `switch` statement", - $propdoc: { - expression: "[AST_Node] the `switch` “discriminant”" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.expression.walk(e), tt(n, e); - }); - }, - _validate: function() { - s(this, "expression"), this.body.forEach(function(e) { - if (!(e instanceof Xt)) throw new Error("body must be AST_SwitchBranch[]"); - }); - } - }, it), Xt = i("SwitchBranch", null, { - $documentation: "Base class for `switch` branches", - _validate: function() { - if ("SwitchBranch" == this.TYPE) throw new Error("should not instantiate AST_SwitchBranch"); - } - }, it), Kt = i("Default", null, { - $documentation: "A `default` switch branch" - }, Xt), Qt = i("Case", "expression", { - $documentation: "A `case` switch branch", - $propdoc: { - expression: "[AST_Node] the `case` expression" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.expression.walk(e), tt(n, e); - }); - }, - _validate: function() { - s(this, "expression"); - } - }, Xt), Zt = i("Try", "bcatch bfinally", { - $documentation: "A `try` statement", - $propdoc: { - bcatch: "[AST_Catch?] the catch block, or null if not present", - bfinally: "[AST_Finally?] the finally block, or null if not present" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - tt(n, e), n.bcatch && n.bcatch.walk(e), n.bfinally && n.bfinally.walk(e); - }); - }, - _validate: function() { - if (null != this.bcatch && !(this.bcatch instanceof ei)) throw new Error("bcatch must be AST_Catch"); - if (null != this.bfinally && !(this.bfinally instanceof ni)) throw new Error("bfinally must be AST_Finally"); - } - }, it), ei = i("Catch", "argname", { - $documentation: "A `catch` node; only makes sense as part of a `try` statement", - $propdoc: { - argname: "[(AST_Destructured|AST_SymbolCatch)?] symbol for the exception, or null if not present" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.argname && n.argname.walk(e), tt(n, e); - }); - }, - _validate: function() { - null != this.argname && c(this.argname, function(e) { - if (!(e instanceof Ji)) throw new Error("argname must be AST_SymbolCatch"); - }); - } - }, it), ni = i("Finally", null, { - $documentation: "A `finally` node; only makes sense as part of a `try` statement" - }, it), ti = i("Definitions", "definitions", { - $documentation: "Base class for `var` nodes (variable declarations/initializations)", - $propdoc: { - definitions: "[AST_VarDef*] array of variable definitions" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.definitions.forEach(function(e) { - e.walk(n); - }); - }); - }, - _validate: function() { - if ("Definitions" == this.TYPE) throw new Error("should not instantiate AST_Definitions"); - if (this.definitions.length < 1) throw new Error("must have at least one definition"); - } - }, Jn), ii = i("Const", null, { - $documentation: "A `const` statement", - _validate: function() { - this.definitions.forEach(function(e) { - if (!(e instanceof ai)) throw new Error("definitions must be AST_VarDef[]"); - c(e.name, function(e) { - if (!(e instanceof Yi)) throw new Error("name must be AST_SymbolConst"); - }); - }); - } - }, ti), ri = i("Let", null, { - $documentation: "A `let` statement", - _validate: function() { - this.definitions.forEach(function(e) { - if (!(e instanceof ai)) throw new Error("definitions must be AST_VarDef[]"); - c(e.name, function(e) { - if (!(e instanceof Bi)) throw new Error("name must be AST_SymbolLet"); - }); - }); - } - }, ti), oi = i("Var", null, { - $documentation: "A `var` statement", - _validate: function() { - this.definitions.forEach(function(e) { - if (!(e instanceof ai)) throw new Error("definitions must be AST_VarDef[]"); - c(e.name, function(e) { - if (!(e instanceof Li)) throw new Error("name must be AST_SymbolVar"); - }); - }); - } - }, ti), ai = i("VarDef", "name value", { - $documentation: "A variable declaration; only appears in a AST_Definitions node", - $propdoc: { - name: "[AST_Destructured|AST_SymbolVar] name of the variable", - value: "[AST_Node?] initializer, or null of there's no initializer" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.name.walk(e), n.value && n.value.walk(e); - }); - }, - _validate: function() { - null != this.value && s(this, "value"); - } - }), si = i("ExportDeclaration", "body", { - $documentation: "An `export` statement", - $propdoc: { - body: "[AST_DefClass|AST_Definitions|AST_LambdaDefinition] the statement to export" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.body.walk(e); - }); - }, - _validate: function() { - if (!(this.body instanceof jt || this.body instanceof ti || this.body instanceof $t)) throw new Error("body must be AST_DefClass, AST_Definitions or AST_LambdaDefinition"); - } - }, Jn), fi = i("ExportDefault", "body", { - $documentation: "An `export default` statement", - $propdoc: { - body: "[AST_Node] the default export" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.body.walk(e); - }); - }, - _validate: function() { - this.body instanceof jt || this.body instanceof $t || s(this, "body"); - } - }, Jn), ce = i("ExportForeign", "aliases keys path quote", { - $documentation: "An `export ... from '...'` statement", - $propdoc: { - aliases: "[string*] array of aliases to export", - keys: "[string*] array of keys to import", - path: "[string] the path to import module", - quote: "[string?] the original quote character" - }, - _validate: function() { - if (this.aliases.length != this.keys.length) throw new Error("aliases:key length mismatch: " + this.aliases.length + " != " + this.keys.length); - if (this.aliases.forEach(function(e) { - if ("string" != typeof e) throw new Error("aliases must contain string"); - }), this.keys.forEach(function(e) { - if ("string" != typeof e) throw new Error("keys must contain string"); - }), "string" != typeof this.path) throw new Error("path must be string"); - if (null != this.quote) { - if ("string" != typeof this.quote) throw new Error("quote must be string"); - if (!/^["']$/.test(this.quote)) throw new Error("invalid quote: " + this.quote); - } - } - }, Jn), ci = i("ExportReferences", "properties", { - $documentation: "An `export { ... }` statement", - $propdoc: { - properties: "[AST_SymbolExport*] array of aliases to export" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.properties.forEach(function(e) { - e.walk(n); - }); - }); - }, - _validate: function() { - this.properties.forEach(function(e) { - if (!(e instanceof Ki)) throw new Error("properties must contain AST_SymbolExport"); - }); - } - }, Jn), ui = i("Import", "all default path properties quote", { - $documentation: "An `import` statement", - $propdoc: { - all: "[AST_SymbolImport?] the imported namespace, or null if not specified", - default: "[AST_SymbolImport?] the alias for default `export`, or null if not specified", - path: "[string] the path to import module", - properties: "[(AST_SymbolImport*)?] array of aliases, or null if not specified", - quote: "[string?] the original quote character" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.all && e.all.walk(n), e.default && e.default.walk(n), e.properties && e.properties.forEach(function(e) { - e.walk(n); - }); - }); - }, - _validate: function() { - if (null != this.all) { - if (!(this.all instanceof Ri)) throw new Error("all must be AST_SymbolImport"); - if (null != this.properties) throw new Error("cannot import both * and {} in the same statement"); - } - if (null != this.default) { - if (!(this.default instanceof Ri)) throw new Error("default must be AST_SymbolImport"); - if ("" !== this.default.key) throw new Error("invalid default key: " + this.default.key); - } - if ("string" != typeof this.path) throw new Error("path must be string"); - if (null != this.properties && this.properties.forEach(function(e) { - if (!(e instanceof Ri)) throw new Error("properties must contain AST_SymbolImport"); - }), null != this.quote) { - if ("string" != typeof this.quote) throw new Error("quote must be string"); - if (!/^["']$/.test(this.quote)) throw new Error("invalid quote: " + this.quote); - } - } - }, Jn), li = i("DefaultValue", "name value", { - $documentation: "A default value declaration", - $propdoc: { - name: "[AST_Destructured|AST_SymbolDeclaration] name of the variable", - value: "[AST_Node] value to assign if variable is `undefined`" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.name.walk(e), n.value.walk(e); - }); - }, - _validate: function() { - s(this, "value"); - } - }); - function f(e, n, t, i) { - e[n].forEach(function(e) { - a(e, n, !0, t, i); - }); - } - var pi = i("Call", "args expression optional pure terminal", { - $documentation: "A function call expression", - $propdoc: { - args: "[AST_Node*] array of arguments", - expression: "[AST_Node] expression to invoke as function", - optional: "[boolean] whether the expression is optional chaining", - pure: "[string/S] marker for side-effect-free call expression", - terminal: "[boolean] whether the chain has ended" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.expression.walk(n), e.args.forEach(function(e) { - e.walk(n); - }); - }); - }, - _validate: function() { - s(this, "expression"), f(this, "args", !0); - } - }), di = i("New", null, { - $documentation: "An object instantiation. Derives from a function call since it has exactly the same properties", - _validate: function() { - if (this.optional) throw new Error("optional must be false"); - if (this.terminal) throw new Error("terminal must be false"); - } - }, pi), hi = i("Sequence", "expressions", { - $documentation: "A sequence expression (comma-separated expressions)", - $propdoc: { - expressions: "[AST_Node*] array of expressions (at least two)" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.expressions.forEach(function(e) { - e.walk(n); - }); - }); - }, - _validate: function() { - if (this.expressions.length < 2) throw new Error("expressions must contain multiple elements"); - f(this, "expressions"); - } - }); - function vi(e) { - for (;e instanceof mi; ) e = e.expression; - return e; - } - var mi = i("PropAccess", "expression optional property terminal", { - $documentation: 'Base class for property access expressions, i.e. `a.foo` or `a["foo"]`', - $propdoc: { - expression: "[AST_Node] the “container” expression", - optional: "[boolean] whether the expression is optional chaining", - property: "[AST_Node|string] the property to access. For AST_Dot this is always a plain string, while for AST_Sub it's an arbitrary AST_Node", - terminal: "[boolean] whether the chain has ended" - }, - get_property: function() { - var e = this.property; - return e instanceof ir ? e.value : e instanceof wi && "void" == e.operator && e.expression instanceof ir ? void 0 : e; - }, - _validate: function() { - if ("PropAccess" == this.TYPE) throw new Error("should not instantiate AST_PropAccess"); - s(this, "expression"); - } - }), _i = i("Dot", null, { - $documentation: "A dotted property access expression", - walk: function(e) { - var n = this; - e.visit(n, function() { - n.expression.walk(e); - }); - }, - _validate: function() { - if ("string" != typeof this.property) throw new Error("property must be string"); - } - }, mi), gi = i("Sub", null, { - $documentation: 'Index-style property access, i.e. `a["foo"]`', - walk: function(e) { - var n = this; - e.visit(n, function() { - n.expression.walk(e), n.property.walk(e); - }); - }, - _validate: function() { - s(this, "property"); - } - }, mi), bi = i("Spread", "expression", { - $documentation: "Spread expression in array/object literals or function calls", - $propdoc: { - expression: "[AST_Node] expression to be expanded" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.expression.walk(e); - }); - }, - _validate: function() { - s(this, "expression"); - } - }), yi = i("Unary", "operator expression", { - $documentation: "Base class for unary expressions", - $propdoc: { - operator: "[string] the operator", - expression: "[AST_Node] expression that this unary operator applies to" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.expression.walk(e); - }); - }, - _validate: function() { - if ("Unary" == this.TYPE) throw new Error("should not instantiate AST_Unary"); - if ("string" != typeof this.operator) throw new Error("operator must be string"); - s(this, "expression"); - } - }), wi = i("UnaryPrefix", null, { - $documentation: "Unary prefix expression, i.e. `typeof i` or `++i`" - }, yi), xi = i("UnaryPostfix", null, { - $documentation: "Unary postfix expression, i.e. `i++`" - }, yi), ki = i("Binary", "operator left right", { - $documentation: "Binary expression, i.e. `a + b`", - $propdoc: { - left: "[AST_Node] left-hand side expression", - operator: "[string] the operator", - right: "[AST_Node] right-hand side expression" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.left.walk(e), n.right.walk(e); - }); - }, - _validate: function() { - if (this instanceof Si || s(this, "left"), "string" != typeof this.operator) throw new Error("operator must be string"); - s(this, "right"); - } - }), Ei = i("Conditional", "condition consequent alternative", { - $documentation: "Conditional expression using the ternary operator, i.e. `a ? b : c`", - $propdoc: { - condition: "[AST_Node]", - consequent: "[AST_Node]", - alternative: "[AST_Node]" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.condition.walk(e), n.consequent.walk(e), n.alternative.walk(e); - }); - }, - _validate: function() { - s(this, "condition"), s(this, "consequent"), s(this, "alternative"); - } - }), Si = i("Assign", null, { - $documentation: "An assignment expression — `a = b + 5`", - _validate: function() { - if (this.operator.indexOf("=") < 0) throw new Error('operator must contain "="'); - if (this.left instanceof Oi) { - if ("=" != this.operator) throw new Error("invalid destructuring operator: " + this.operator); - c(this.left, function(e) { - if (!(e instanceof mi || e instanceof Xi)) throw new Error("left must be assignable: " + e.TYPE); - }); - } - } - }, ki), Ti = i("Await", "expression", { - $documentation: "An await expression", - $propdoc: { - expression: "[AST_Node] expression with Promise to resolve on" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.expression.walk(e); - }); - }, - _validate: function() { - s(this, "expression"); - } - }), Ai = i("Yield", "expression nested", { - $documentation: "A yield expression", - $propdoc: { - expression: "[AST_Node?] return value for iterator, or null if undefined", - nested: "[boolean] whether to iterate over expression as generator" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.expression && n.expression.walk(e); - }); - }, - _validate: function() { - if (null != this.expression) s(this, "expression"); else if (this.nested) throw new Error("yield* must contain expression"); - } - }), Di = i("Array", "elements", { - $documentation: "An array literal", - $propdoc: { - elements: "[AST_Node*] array of elements" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.elements.forEach(function(e) { - e.walk(n); - }); - }); - }, - _validate: function() { - f(this, "elements", !0, !0); - } - }), Oi = i("Destructured", "rest", { - $documentation: "Base class for destructured literal", - $propdoc: { - rest: "[(AST_Destructured|AST_SymbolDeclaration|AST_SymbolRef)?] rest parameter, or null if absent" - }, - _validate: function() { - if ("Destructured" == this.TYPE) throw new Error("should not instantiate AST_Destructured"); - } - }); - function c(e, n, t) { - if (e instanceof li && t) return c(e.name, n); - if (e instanceof Oi) { - if (null != e.rest && c(e.rest, n), e instanceof $i) return e.elements.forEach(function(e) { - e instanceof lr || c(e, n, !0); - }); - if (e instanceof qi) return e.properties.forEach(function(e) { - c(e.value, n, !0); - }); - } - n(e); - } - var u, $i = i("DestructuredArray", "elements", { - $documentation: "A destructured array literal", - $propdoc: { - elements: "[(AST_DefaultValue|AST_Destructured|AST_SymbolDeclaration|AST_SymbolRef)*] array of elements" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.elements.forEach(function(e) { - e.walk(n); - }), e.rest && e.rest.walk(n); - }); - } - }, Oi), zi = i("DestructuredKeyVal", "key value", { - $documentation: "A key: value destructured property", - $propdoc: { - key: "[string|AST_Node] property name. For computed property this is an AST_Node.", - value: "[AST_DefaultValue|AST_Destructured|AST_SymbolDeclaration|AST_SymbolRef] property value" - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.key instanceof Gn && n.key.walk(e), n.value.walk(e); - }); - }, - _validate: function() { - if ("string" != typeof this.key) { - if (!(this.key instanceof Gn)) throw new Error("key must be string or AST_Node"); - s(this, "key"); - } - if (!(this.value instanceof Gn)) throw new Error("value must be AST_Node"); - } - }), qi = i("DestructuredObject", "properties", { - $documentation: "A destructured object literal", - $propdoc: { - properties: "[AST_DestructuredKeyVal*] array of properties" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.properties.forEach(function(e) { - e.walk(n); - }), e.rest && e.rest.walk(n); - }); - }, - _validate: function() { - this.properties.forEach(function(e) { - if (!(e instanceof zi)) throw new Error("properties must be AST_DestructuredKeyVal[]"); - }); - } - }, Oi), Ci = i("Object", "properties", { - $documentation: "An object literal", - $propdoc: { - properties: "[(AST_ObjectProperty|AST_Spread)*] array of properties" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.properties.forEach(function(e) { - e.walk(n); - }); - }); - }, - _validate: function() { - this.properties.forEach(function(e) { - if (!(e instanceof Mi || e instanceof bi)) throw new Error("properties must contain AST_ObjectProperty and/or AST_Spread only"); - }); - } - }), Mi = i("ObjectProperty", "key value", { - $documentation: "Base class for literal object properties", - $propdoc: { - key: "[string|AST_Node] property name. For computed property this is an AST_Node.", - value: "[AST_Node] property value. For getters and setters this is an AST_Accessor." - }, - walk: function(e) { - var n = this; - e.visit(n, function() { - n.key instanceof Gn && n.key.walk(e), n.value.walk(e); - }); - }, - _validate: function() { - if ("ObjectProperty" == this.TYPE) throw new Error("should not instantiate AST_ObjectProperty"); - if ("string" != typeof this.key) { - if (!(this.key instanceof Gn)) throw new Error("key must be string or AST_Node"); - s(this, "key"); - } - if (!(this.value instanceof Gn)) throw new Error("value must be AST_Node"); - } - }), Fi = i("ObjectKeyVal", null, { - $documentation: "A key: value object property", - _validate: function() { - s(this, "value"); - } - }, Mi), ji = i("ObjectMethod", null, { - $documentation: "A key(){} object property", - _validate: function() { - if (!(this.value instanceof bt)) throw new Error("value must be AST_LambdaExpression"); - if (yt(this.value)) throw new Error("value cannot be AST_Arrow or AST_AsyncArrow"); - if (null != this.value.name) throw new Error("name of object method's lambda must be null"); - } - }, Fi), Pi = i("ObjectSetter", null, { - $documentation: "An object setter property", - _validate: function() { - if (!(this.value instanceof gt)) throw new Error("value must be AST_Accessor"); - } - }, Mi), Ni = i("ObjectGetter", null, { - $documentation: "An object getter property", - _validate: function() { - if (!(this.value instanceof gt)) throw new Error("value must be AST_Accessor"); - } - }, Mi), Ii = i("Symbol", "scope name thedef", { - $documentation: "Base class for all symbols", - $propdoc: { - name: "[string] name of this symbol", - scope: "[AST_Scope/S] the current scope (not necessarily the definition scope)", - thedef: "[SymbolDef/S] the definition of this symbol" - }, - _validate: function() { - if ("Symbol" == this.TYPE) throw new Error("should not instantiate AST_Symbol"); - if ("string" != typeof this.name) throw new Error("name must be string"); - } - }), Hi = i("SymbolDeclaration", "init", { - $documentation: "A declaration symbol (symbol in var, function name or argument, symbol in catch)" - }, Ii), Yi = i("SymbolConst", null, { - $documentation: "Symbol defining a constant" - }, Hi), Ri = i("SymbolImport", "key", { - $documentation: "Symbol defined by an `import` statement", - $propdoc: { - key: "[string] the original `export` name" - }, - _validate: function() { - if ("string" != typeof this.key) throw new Error("key must be string"); - } - }, Yi), Bi = i("SymbolLet", null, { - $documentation: "Symbol defining a lexical-scoped variable" - }, Hi), Li = i("SymbolVar", null, { - $documentation: "Symbol defining a variable" - }, Hi), Ui = i("SymbolFunarg", null, { - $documentation: "Symbol naming a function argument" - }, Li), Vi = i("SymbolDefun", null, { - $documentation: "Symbol defining a function" - }, Hi), Wi = i("SymbolLambda", null, { - $documentation: "Symbol naming a function expression" - }, Hi), ue = i("SymbolDefClass", null, { - $documentation: "Symbol defining a class" - }, Yi), Gi = i("SymbolClass", null, { - $documentation: "Symbol naming a class expression" - }, Yi), Ji = i("SymbolCatch", null, { - $documentation: "Symbol naming the exception in catch" - }, Hi), le = i("Label", "references", { - $documentation: "Symbol naming a label (declaration)", - $propdoc: { - references: "[AST_LoopControl*] a list of nodes referring to this label" - }, - initialize: function() { - this.references = [], this.thedef = this; - } - }, Ii), Xi = i("SymbolRef", "fixed in_arg redef", { - $documentation: "Reference to some symbol (not definition/declaration)" - }, Ii), Ki = i("SymbolExport", "alias", { - $documentation: "Reference in an `export` statement", - $propdoc: { - alias: "[string] the `export` alias" - }, - _validate: function() { - if ("string" != typeof this.alias) throw new Error("alias must be string"); - } - }, Xi), pe = i("LabelRef", null, { - $documentation: "Reference to a label symbol" - }, Ii), Qi = i("ObjectIdentity", null, { - $documentation: "Base class for `super` & `this`", - _validate: function() { - if ("ObjectIdentity" == this.TYPE) throw new Error("should not instantiate AST_ObjectIdentity"); - } - }, Ii), Zi = i("Super", null, { - $documentation: "The `super` symbol", - _validate: function() { - if ("super" !== this.name) throw new Error('name must be "super"'); - } - }, Qi), er = i("This", null, { - $documentation: "The `this` symbol", - _validate: function() { - if ("This" == this.TYPE && "this" !== this.name) throw new Error('name must be "this"'); - } - }, Qi), nr = i("NewTarget", null, { - $documentation: "The `new.target` symbol", - initialize: function() { - this.name = "new.target"; - }, - _validate: function() { - if ("new.target" !== this.name) throw new Error('name must be "new.target": ' + this.name); - } - }, er), tr = i("Template", "expressions strings tag", { - $documentation: "A template literal, i.e. tag`str1${expr1}...strN${exprN}strN+1`", - $propdoc: { - expressions: "[AST_Node*] the placeholder expressions", - strings: "[string*] the raw text segments", - tag: "[AST_Node] tag function, or null if absent" - }, - walk: function(n) { - var e = this; - n.visit(e, function() { - e.tag && e.tag.walk(n), e.expressions.forEach(function(e) { - e.walk(n); - }); - }); - }, - _validate: function() { - if (this.expressions.length + 1 != this.strings.length) throw new Error("malformed template with " + this.expressions.length + " placeholder(s) but " + this.strings.length + " text segment(s)"); - f(this, "expressions"), this.strings.forEach(function(e) { - if ("string" != typeof e) throw new Error("strings must contain string"); - }), null != this.tag && s(this, "tag"); - } - }), ir = i("Constant", null, { - $documentation: "Base class for all constants", - _validate: function() { - if ("Constant" == this.TYPE) throw new Error("should not instantiate AST_Constant"); - } - }), rr = i("String", "quote value", { - $documentation: "A string literal", - $propdoc: { - quote: "[string?] the original quote character", - value: "[string] the contents of this string" - }, - _validate: function() { - if (null != this.quote) { - if ("string" != typeof this.quote) throw new Error("quote must be string"); - if (!/^["']$/.test(this.quote)) throw new Error("invalid quote: " + this.quote); - } - if ("string" != typeof this.value) throw new Error("value must be string"); - } - }, ir), or = i("Number", "value", { - $documentation: "A number literal", - $propdoc: { - value: "[number] the numeric value" - }, - _validate: function() { - if ("number" != typeof this.value) throw new Error("value must be number"); - if (!isFinite(this.value)) throw new Error("value must be finite"); - if (this.value < 0) throw new Error("value cannot be negative"); - } - }, ir), ar = i("BigInt", "value", { - $documentation: "A BigInt literal", - $propdoc: { - value: "[string] the numeric representation" - }, - _validate: function() { - if ("string" != typeof this.value) throw new Error("value must be string"); - if ("-" == this.value[0]) throw new Error("value cannot be negative"); - } - }, ir), sr = i("RegExp", "value", { - $documentation: "A regexp literal", - $propdoc: { - value: "[RegExp] the actual regexp" - }, - _validate: function() { - if (!(this.value instanceof RegExp)) throw new Error("value must be RegExp"); - } - }, ir), g = i("Atom", null, { - $documentation: "Base class for atoms", - _validate: function() { - if ("Atom" == this.TYPE) throw new Error("should not instantiate AST_Atom"); - } - }, ir), fr = i("Null", null, { - $documentation: "The `null` atom", - value: null - }, g), cr = i("NaN", null, { - $documentation: "The impossible value", - value: NaN - }, g), ur = i("Undefined", null, { - $documentation: "The `undefined` value", - value: void 0 - }, g), lr = i("Hole", null, { - $documentation: "A hole in an array", - value: void 0 - }, g), pr = i("Infinity", null, { - $documentation: "The `Infinity` value", - value: 1 / 0 - }, g), dr = i("Boolean", null, { - $documentation: "Base class for booleans", - _validate: function() { - if ("Boolean" == this.TYPE) throw new Error("should not instantiate AST_Boolean"); - } - }, g), hr = i("False", null, { - $documentation: "The `false` atom", - value: !1 - }, dr), vr = i("True", null, { - $documentation: "The `true` atom", - value: !0 - }, dr); - function mr(e) { - this.callback = e, this.directives = Object.create(null), this.stack = []; - } - function _r(e, n) { - mr.call(this), this.before = e, this.after = n; - } - function l(e, n) { - return In(e, function(e) { - return e.transform(n, !0); - }); - } - function p(e, n) { - e.argnames = l(e.argnames, n), e.rest && (e.rest = e.rest.transform(n)), e.value ? e.value = e.value.transform(n) : e.body = l(e.body, n); - } - mr.prototype = { - visit: function(e, n) { - this.push(e), !this.callback(e, n || Mn) && n && n(), this.pop(); - }, - parent: function(e) { - return this.stack[this.stack.length - 2 - (e || 0)]; - }, - push: function(e) { - e instanceof _t ? this.directives = Object.create(this.directives) : e instanceof Kn && !this.directives[e.value] && (this.directives[e.value] = e), - this.stack.push(e); - }, - pop: function() { - this.stack.pop() instanceof _t && (this.directives = Object.getPrototypeOf(this.directives)); - }, - self: function() { - return this.stack[this.stack.length - 1]; - }, - find_parent: function(e) { - for (var n = this.stack, t = n.length; 0 <= --t; ) { - var i = n[t]; - if (i instanceof e) return i; - } - }, - has_directive: function(e) { - var n = this.directives[e]; - if (n) return n; - var t = this.stack[this.stack.length - 1]; - if (t instanceof vt) for (var i = 0; i < t.body.length; ++i) { - var r = t.body[i]; - if (!(r instanceof Kn)) break; - if (r.value == e) return r; - } - }, - loopcontrol_target: function(e) { - var n, t = this.stack; - if (e.label) { - for (var i = t.length; 0 <= --i; ) if ((n = t[i]) instanceof ot && n.label.name == e.label.name) return n.body; - } else for (i = t.length; 0 <= --i; ) if ((n = t[i]) instanceof at || e instanceof Vt && n instanceof Jt) return n; - }, - in_boolean_context: function() { - for (var e, n = this.self(), t = 0; e = this.parent(t); t++) { - if (e instanceof Ei && e.condition === n || e instanceof st && e.condition === n || e instanceof ut && e.condition === n || e instanceof Gt && e.condition === n || e instanceof Bt && e.in_bool || e instanceof hi && e.tail_node() !== n || e instanceof et || e instanceof wi && "!" == e.operator && e.expression === n) return !0; - if (e instanceof ki && ("&&" == e.operator || "||" == e.operator) || e instanceof Ei || e.tail_node() === n) n = e; else { - if (!(e instanceof Bt)) return !1; - for (var i, r = e; i = this.parent(++t); r = i) if ("Call" == i.TYPE) { - if (!(r instanceof _t) || r.name) return !1; - } else if (r instanceof _t) return !1; - } - } - } - }, _r.prototype = new mr(), (u = function(e, r) { - e.DEFMETHOD("transform", function(e, n) { - var t, i; - return e.push(this), void 0 === (t = e.before ? e.before(this, r, n) : t) && (r(t = this, e), - e.after && void 0 !== (i = e.after(t, n)) && (t = i)), e.pop(), t; - }); - })(Gn, Mn), u(ot, function(e, n) { - e.label = e.label.transform(n), e.body = e.body.transform(n); - }), u(et, function(e, n) { - e.body = e.body.transform(n); - }), u(it, function(e, n) { - e.body = l(e.body, n); - }), u(ft, function(e, n) { - e.body = e.body.transform(n), e.condition = e.condition.transform(n); - }), u(ct, function(e, n) { - e.condition = e.condition.transform(n), e.body = e.body.transform(n); - }), u(ut, function(e, n) { - e.init && (e.init = e.init.transform(n)), e.condition && (e.condition = e.condition.transform(n)), - e.step && (e.step = e.step.transform(n)), e.body = e.body.transform(n); - }), u(lt, function(e, n) { - e.init = e.init.transform(n), e.object = e.object.transform(n), e.body = e.body.transform(n); - }), u(ht, function(e, n) { - e.expression = e.expression.transform(n), e.body = e.body.transform(n); - }), u(Rt, function(e, n) { - e.value && (e.value = e.value.transform(n)); - }), u(Ut, function(e, n) { - e.label && (e.label = e.label.transform(n)); - }), u(Gt, function(e, n) { - e.condition = e.condition.transform(n), e.body = e.body.transform(n), e.alternative && (e.alternative = e.alternative.transform(n)); - }), u(Jt, function(e, n) { - e.expression = e.expression.transform(n), e.body = l(e.body, n); - }), u(Qt, function(e, n) { - e.expression = e.expression.transform(n), e.body = l(e.body, n); - }), u(Zt, function(e, n) { - e.body = l(e.body, n), e.bcatch && (e.bcatch = e.bcatch.transform(n)), e.bfinally && (e.bfinally = e.bfinally.transform(n)); - }), u(ei, function(e, n) { - e.argname && (e.argname = e.argname.transform(n)), e.body = l(e.body, n); - }), u(ti, function(e, n) { - e.definitions = l(e.definitions, n); - }), u(ai, function(e, n) { - e.name = e.name.transform(n), e.value && (e.value = e.value.transform(n)); - }), u(li, function(e, n) { - e.name = e.name.transform(n), e.value = e.value.transform(n); - }), u(_t, function(e, n) { - e.name && (e.name = e.name.transform(n)), e.argnames = l(e.argnames, n), e.rest && (e.rest = e.rest.transform(n)), - e.body = l(e.body, n); - }), u(Et, p), u(St, p), u(Ft, function(e, n) { - e.name && (e.name = e.name.transform(n)), e.extends && (e.extends = e.extends.transform(n)), - e.properties = l(e.properties, n); - }), u(Nt, function(e, n) { - e.key instanceof Gn && (e.key = e.key.transform(n)), e.value && (e.value = e.value.transform(n)); - }), u(pi, function(e, n) { - e.expression = e.expression.transform(n), e.args = l(e.args, n); - }), u(hi, function(e, n) { - e.expressions = l(e.expressions, n); - }), u(Ti, function(e, n) { - e.expression = e.expression.transform(n); - }), u(Ai, function(e, n) { - e.expression && (e.expression = e.expression.transform(n)); - }), u(_i, function(e, n) { - e.expression = e.expression.transform(n); - }), u(gi, function(e, n) { - e.expression = e.expression.transform(n), e.property = e.property.transform(n); - }), u(bi, function(e, n) { - e.expression = e.expression.transform(n); - }), u(yi, function(e, n) { - e.expression = e.expression.transform(n); - }), u(ki, function(e, n) { - e.left = e.left.transform(n), e.right = e.right.transform(n); - }), u(Ei, function(e, n) { - e.condition = e.condition.transform(n), e.consequent = e.consequent.transform(n), - e.alternative = e.alternative.transform(n); - }), u(Di, function(e, n) { - e.elements = l(e.elements, n); - }), u($i, function(e, n) { - e.elements = l(e.elements, n), e.rest && (e.rest = e.rest.transform(n)); - }), u(zi, function(e, n) { - e.key instanceof Gn && (e.key = e.key.transform(n)), e.value = e.value.transform(n); - }), u(qi, function(e, n) { - e.properties = l(e.properties, n), e.rest && (e.rest = e.rest.transform(n)); - }), u(Ci, function(e, n) { - e.properties = l(e.properties, n); - }), u(Mi, function(e, n) { - e.key instanceof Gn && (e.key = e.key.transform(n)), e.value = e.value.transform(n); - }), u(si, function(e, n) { - e.body = e.body.transform(n); - }), u(fi, function(e, n) { - e.body = e.body.transform(n); - }), u(ci, function(e, n) { - e.properties = l(e.properties, n); - }), u(ui, function(e, n) { - e.all && (e.all = e.all.transform(n)), e.default && (e.default = e.default.transform(n)), - e.properties && (e.properties = l(e.properties, n)); - }), u(tr, function(e, n) { - e.tag && (e.tag = e.tag.transform(n)), e.expressions = l(e.expressions, n); - }); - var j = [ "abstract async await boolean byte char double enum export final float goto implements import int interface let long native package private protected public short static super synchronized this throws transient volatile yield", A = "false null true", de = "break case catch class const continue debugger default delete do else extends finally for function if in instanceof new return switch throw try typeof var void while with" ].join(" "), T = "return new delete throw else case", de = Bn(de), j = Bn(j), T = Bn(T), A = Bn(A), D = /^0b([01]+)$/i, O = /^0x([0-9a-f]+)$/i, $ = /^0o?([0-7]+)$/i, z = Bn([ "in", "instanceof", "typeof", "new", "void", "delete", "++", "--", "+", "-", "!", "~", "&", "|", "^", "*", "/", "%", "**", ">>", "<<", ">>>", "<", ">", "<=", ">=", "==", "===", "!=", "!==", "?", "=", "+=", "-=", "/=", "*=", "%=", "**=", ">>=", "<<=", ">>>=", "&=", "|=", "^=", "&&", "||", "??", "&&=", "||=", "??=" ]), q = "\n\r\u2028\u2029", C = "+-*&%=<>!?|~^", he = ",;:)}]", M = "[{(,;:", P = M + "`)}]", N = q + "  \t\f\v​              \ufeff", I = Bn(e("./'\"#" + C + P + N)); - function R(e) { - return 56320 <= e && e <= 57343; - } - function H(e) { - return 48 <= e && e <= 57; - } - function B(e) { - return !I[e]; - } - function gr(e) { - return /^[a-z_$][a-z0-9_$]*$/i.test(e); - } - function br(e) { - switch (e[0]) { - case "b": - return "\b"; - - case "f": - return "\f"; - - case "n": - return "\n"; - - case "r": - return "\r"; - - case "t": - return "\t"; - - case "u": - if ("{" == e[1] && "}" == e.slice(-1)) n = e.slice(2, -1); else { - if (5 != e.length) return; - n = e.slice(1); - } - return (n = parseInt(n, 16)) < 0 || isNaN(n) ? void 0 : n < 65536 ? String.fromCharCode(n) : 1114111 < n ? void 0 : String.fromCharCode(55232 + (n >> 10)) + String.fromCharCode(56320 + (1023 & n)); - - case "v": - return "\v"; - - case "x": - return 3 != e.length ? void 0 : (n = parseInt(e.slice(1), 16)) < 0 || isNaN(n) ? void 0 : String.fromCharCode(n); - var n; - - case "\r": - case "\n": - return ""; - - default: - return "0" == e ? "\0" : "0" <= e[0] && e[0] <= "9" ? void 0 : e; - } - } - function yr(e, n, t, i, r) { - this.message = e, this.filename = n, this.line = t, this.col = i, this.pos = r; - } - function ve(e, n, t, i, r) { - throw new yr(e, n, t, i, r); - } - function me(e, n, t) { - return e.type == n && (null == t || e.value == t); - } - q = Bn(e(q)), C = Bn(e(C)), he = Bn(e(he)), M = Bn(e(M)), P = Bn(e(P)), N = Bn(e(N)), - ((yr.prototype = Object.create(Error.prototype)).constructor = yr).prototype.name = "SyntaxError", - n(yr); - var L = {}; - function _e(i, r, o, a) { - var s = { - text: i, - filename: r, - pos: 0, - tokpos: 0, - line: 1, - tokline: 0, - col: 0, - tokcol: 0, - newline_before: !1, - regex_allowed: !1, - comments_before: [], - directives: {}, - directive_stack: [], - read_template: e("Unterminated template literal", function(e) { - for (var n = ""; ;) { - var t = i(); - switch (t) { - case "\\": - t += i(); - break; - - case "`": - return void e.push(n); - - case "$": - if ("{" == c()) return u(), e.push(n), s.regex_allowed = !0; - } - n += t; - } - function i() { - var e = u(!0, !0); - return "\r" == e ? "\n" : e; - } - }) - }, f = !1; - function c() { - return s.text.charAt(s.pos); - } - function u(e, n) { - var t = s.text.charAt(s.pos++); - if (e && !t) throw L; - return q[t] ? (s.col = 0, s.line++, n || (s.newline_before = !0), "\r" == t && "\n" == c() && (s.pos++, - t = "\n")) : s.col++, t; - } - function l(e) { - for (;0 < e--; ) u(); - } - function p(e) { - return s.text.substr(s.pos, e.length) == e; - } - function d() { - s.tokline = s.line, s.tokcol = s.col, s.tokpos = s.pos; - } - function h(e, n, t) { - s.regex_allowed = "operator" == e && !wr[n] || "keyword" == e && T[n] || "punc" == e && M[n], - "punc" == e && "." == n ? f = !0 : t || (f = !1); - n = { - type: e, - value: n, - line: s.tokline, - col: s.tokcol, - pos: s.tokpos, - endline: s.line, - endcol: s.col, - endpos: s.pos, - nlb: s.newline_before, - file: r - }; - return /^(?:num|string|regexp)$/i.test(e) && (n.raw = i.substring(n.pos, n.endpos)), - t || (n.comments_before = s.comments_before, n.comments_after = s.comments_before = []), - s.newline_before = !1, new Y(n); - } - function v(e) { - ve(e, r, s.tokline, s.tokcol, s.tokpos); - } - function m(e) { - return /^0[0-7_]+$/.test(e); - } - function _(e) { - var t = !1, i = !1, r = !1, o = "." == e, n = function(e) { - for (var n, t = ""; (n = c()) && e(n, t); ) t += u(); - return t; - }(function(e, n) { - switch (e) { - case "x": - case "X": - return !r && (r = !0); - - case "e": - case "E": - return r || !t && (t = i = !0); - - case "+": - case "-": - return i; - - case i = !1, ".": - return !(o || t || r || m(n)) && (o = !0); - } - return /[_0-9a-dfo]/i.test(e); - }); - m(n = e ? e + n : n) ? S.has_directive("use strict") && v("Legacy octal literals are not allowed in strict mode") : n = n.replace(r ? /([1-9a-f]|.0)_(?=[0-9a-f])/gi : /([1-9]|.0)_(?=[0-9])/gi, "$1"); - e = function(e) { - if (n = D.exec(e)) return parseInt(n[1], 2); - if (n = O.exec(e)) return parseInt(n[1], 16); - if (n = $.exec(e)) return parseInt(n[1], 8); - var n = parseFloat(e); - return n == e ? n : void 0; - }(n); - return isNaN(e) && v("Invalid syntax: " + n), o || t || "n" != c() ? h("num", e) : h("bigint", n.toLowerCase() + u()); - } - function g(e) { - var n = u(!0, e); - if ("0" <= n && n <= "7") return function(e) { - var n = c(); - "0" <= n && n <= "7" && (e += u(!0))[0] <= "3" && "0" <= (n = c()) && n <= "7" && (e += u(!0)); - if ("0" === e) return "\0"; - 0 < e.length && S.has_directive("use strict") && v("Legacy octal escape sequences are not allowed in strict mode"); - return String.fromCharCode(parseInt(e, 8)); - }(n); - if ("u" == n) { - var t = u(!0, e); - if (n += t, "{" != t) n += u(!0, e) + u(!0, e) + u(!0, e); else for (;n += t = u(!0, e), - "}" != t; ); - } else "x" == n && (n += u(!0, e) + u(!0, e)); - var i = br(n); - return "string" != typeof i && v("Invalid escape sequence: \\" + n), i; - } - var b = e("Unterminated string constant", function(e) { - for (var n = u(), t = ""; ;) { - var i = u(!0, !0); - if ("\\" == i) i = g(!0); else if (q[i]) v("Unterminated string constant"); else if (i == n) break; - t += i; - } - var r = h("string", t); - return r.quote = e, r; - }); - function y(e) { - var n, t = s.regex_allowed, i = function() { - for (var e = s.text, n = s.pos; n < s.text.length; ++n) if (q[e[n]]) return n; - return -1; - }(); - return -1 == i ? (n = s.text.substr(s.pos), s.pos = s.text.length) : (n = s.text.substring(s.pos, i), - s.pos = i), s.col = s.tokcol + (s.pos - s.tokpos), s.comments_before.push(h(e, n, !0)), - s.regex_allowed = t, S; - } - var w = e("Unterminated multiline comment", function() { - var e = s.regex_allowed, n = function(e, n) { - if (e = s.text.indexOf(e, s.pos), n && -1 == e) throw L; - return e; - }("*/", !0), n = s.text.substring(s.pos, n).replace(/\r\n|\r|\u2028|\u2029/g, "\n"); - return l(n.length + 2), s.comments_before.push(h("comment2", n, !0)), s.regex_allowed = e, - S; - }); - function x() { - for (var e, n, t = !1, i = !1, r = "#" == c() ? u() : ""; e = c(); ) if (t) "u" != e && v("Expecting UnicodeEscapeSequence -- uXXXX"), - B(e = g()) || v("Unicode char: " + e.charCodeAt(0) + " is not valid in identifier"), - r += e, t = !1; else if ("\\" == e) i = t = !0, u(); else { - if (!B(e)) break; - r += u(); - } - return de[r] && i && (n = r.charCodeAt(0).toString(16).toUpperCase(), r = "\\u" + "0000".substr(n.length) + n + r.slice(1)), - r; - } - var k = e("Unterminated regular expression", function(e) { - for (var n, t = !1, i = !1; n = u(!0); ) if (q[n]) v("Unexpected line terminator"); else if (t) e += "\\" + n, - t = !1; else if ("[" == n) i = !0, e += n; else if ("]" == n && i) i = !1, e += n; else { - if ("/" == n && !i) break; - "\\" == n ? t = !0 : e += n; - } - var r = x(); - try { - var o = new RegExp(e, r); - return o.raw_source = e, h("regexp", o); - } catch (e) { - v(e.message); - } - }); - function E(e) { - return h("operator", function e(n) { - if (!c()) return n; - var t = n + c(); - return z[t] ? (u(), e(t)) : n; - }(e || u())); - } - function e(n, t) { - return function(e) { - try { - return t(e); - } catch (e) { - if (e !== L) throw e; - v(n); - } - }; - } - function S(e) { - if (null != e) return k(e); - for (a && 0 == s.pos && p("#!") && (d(), l(2), y("comment5")); ;) { - if (!function() { - for (;N[c()]; ) u(); - }(), d(), o) { - if (p("\x3c!--")) { - l(4), y("comment3"); - continue; - } - if (p("--\x3e") && s.newline_before) { - l(3), y("comment4"); - continue; - } - } - var n = c(); - if (!n) return h("eof"); - var t = n.charCodeAt(0); - switch (t) { - case 34: - case 39: - return b(n); - - case 46: - return function() { - u(); - var e = c(); - if ("." != e) return H(e.charCodeAt(0)) ? _(".") : h("punc", "."); - for (var n = "."; n += ".", u(), "." == c(); ); - return h("operator", n); - }(); - - case 47: - var i = function() { - switch (u(), c()) { - case "/": - return u(), y("comment1"); - - case "*": - return u(), w(); - } - return s.regex_allowed ? k("") : E("/"); - }(); - if (i === S) continue; - return i; - } - if (H(t)) return _(); - if (P[n]) return h("punc", u()); - if (p("=>")) return h("punc", u() + u()); - if (C[n]) return E(); - if (35 == t || 92 == t || !I[n]) return t = void 0, t = x(), f ? h("name", t) : A[t] ? h("atom", t) : de[t] ? z[t] ? h("operator", t) : h("keyword", t) : h("name", t); - break; - } - v("Unexpected character '" + n + "'"); - } - return S.context = function(e) { - return s = e ? e : s; - }, S.add_directive = function(e) { - s.directive_stack[s.directive_stack.length - 1].push(e), s.directives[e] ? s.directives[e]++ : s.directives[e] = 1; - }, S.push_directives_stack = function() { - s.directive_stack.push([]); - }, S.pop_directives_stack = function() { - for (var e = s.directive_stack.pop(), n = e.length; 0 <= --n; ) s.directives[e[n]]--; - }, S.has_directive = function(e) { - return 0 < s.directives[e]; - }, S; - } - var ge = Bn("typeof void delete -- ++ ! ~ - +"), wr = Bn("-- ++"), be = Bn("= += -= /= *= %= **= >>= <<= >>>= &= |= ^= &&= ||= ??="), xr = function(e, n) { - for (var t = 0; t < e.length; ) for (var i = e[t++], r = 0; r < i.length; r++) n[i[r]] = t; - return n; - }([ [ "??" ], [ "||" ], [ "&&" ], [ "|" ], [ "^" ], [ "&" ], [ "==", "===", "!=", "!==" ], [ "<", ">", "<=", ">=", "in", "instanceof" ], [ ">>", "<<", ">>>" ], [ "+", "-" ], [ "*", "/", "%" ], [ "**" ] ], {}), ye = Bn("atom bigint num regexp string"); - function kr(e, l) { - l = oe(l, { - bare_returns: !1, - expression: !1, - filename: null, - html5_comments: !0, - shebang: !0, - strict: !1, - toplevel: null - }, !0); - var h = { - input: "string" == typeof e ? _e(e, l.filename, l.html5_comments, l.shebang) : e, - in_async: !1, - in_directives: !0, - in_funarg: -1, - in_function: 0, - in_generator: !1, - in_loop: 0, - labels: [], - peeked: null, - prev: null, - token: null - }; - function v(e, n) { - return me(h.token, e, n); - } - function p() { - return h.peeked || (h.peeked = h.input()); - } - function m() { - return h.prev = h.token, h.peeked ? (h.token = h.peeked, h.peeked = null) : h.token = h.input(), - h.in_directives = h.in_directives && ("string" == h.token.type || v("punc", ";")), - h.token; - } - function _() { - return h.prev; - } - function f(e, n, t, i) { - var r = h.input.context(); - ve(e, r.filename, null != n ? n : r.tokline, null != t ? t : r.tokcol, null != i ? i : r.tokpos); - } - function a(e, n) { - f(n, e.line, e.col); - } - function t(e, n) { - return e + (void 0 === n ? "" : " «" + n + "»"); - } - function g(e) { - a(e = null == e ? h.token : e, "Unexpected token: " + t(e.type, e.value)); - } - function d(e, n) { - if (v(e, n)) return m(); - a(h.token, "Unexpected token: " + t(h.token.type, h.token.value) + ", expected: " + t(e, n)); - } - function b(e) { - return d("punc", e); - } - function s(e) { - return e.nlb || !Ln(e.comments_before, function(e) { - return !e.nlb; - }); - } - function c() { - return !l.strict && (v("eof") || v("punc", "}") || s(h.token)); - } - function y(e) { - v("punc", ";") ? m() : e || c() || b(";"); - } - function u() { - b("("); - var e = ie(); - return b(")"), e; - } - function n(i) { - return function() { - var e = h.token, n = i.apply(null, arguments), t = _(); - return n.start = e, n.end = t, n; - }; - } - function w() { - (v("operator", "/") || v("operator", "/=")) && (h.peeked = null, h.token = h.input(h.token.value.substr(1))); - } - h.token = m(); - var x = n(function() { - switch (w(), h.token.type) { - case "string": - var e = h.in_directives, n = ie(); - return e && (n instanceof rr ? (o = n.start.raw.slice(1, -1), h.input.add_directive(o), - n.value = o) : h.in_directives = e = !1), y(), e ? new Kn(n) : new et({ - body: n - }); - - case "num": - case "bigint": - case "regexp": - case "operator": - case "atom": - return k(); - - case "name": - switch (h.token.value) { - case "async": - if (me(p(), "keyword", "function")) return m(), m(), v("operator", "*") ? (m(), - O(qt)) : O(zt); - break; - - case "await": - if (h.in_async) return k(); - break; - - case "export": - return m(), function() { - if (v("operator", "*")) { - m(); - var e = "*"; - v("name", "as") && (m(), $() || d("name"), e = h.token.value, m()), d("name", "from"); - var n = h.token; - return d("string"), y(), new ce({ - aliases: [ e ], - keys: [ "*" ], - path: n.value, - quote: n.quote - }); - } - if (v("punc", "{")) { - m(); - for (var t = [], i = []; $(); ) { - var r = h.token; - m(), i.push(r), v("name", "as") ? (m(), $() || d("name"), t.push(h.token.value), - m()) : t.push(r.value), v("punc", "}") || b(","); - } - if (b("}"), v("name", "from")) { - m(); - n = h.token; - return d("string"), y(), new ce({ - aliases: t, - keys: i.map(function(e) { - return e.value; - }), - path: n.value, - quote: n.quote - }); - } - return y(), new ci({ - properties: i.map(function(e, n) { - me(e, "name") || a(e, "Name expected"); - e = U(Ki, e); - return e.alias = t[n], e; - }) - }); - } - if (v("keyword", "default")) { - m(); - e = h.token, n = function() { - if (v("name", "async")) { - if (me(p(), "keyword", "function")) return m(), m(), v("operator", "*") ? (m(), - z(qt, O(At))) : z(zt, O(Tt)); - } else if (v("keyword")) switch (h.token.value) { - case "class": - return m(), z(jt, T(Pt)); - - case "function": - return (m(), v("operator", "*")) ? (m(), z(Mt, O(Ot))) : z(Ct, O(Dt)); - } - }(); - return n ? (n.start = e, n.end = _()) : (w(), n = ie(), y()), new fi({ - body: n - }); - } - return new si({ - body: q() - }); - }(); - - case "import": - var t = p(); - if ("punc" != t.type || !/^[(.]$/.test(t.value)) return m(), function() { - var e, n = null, t = W(Ri, !0), i = null; - if (t ? (t.key = "", v("punc", ",") && m()) : !v("string")) if (v("operator", "*")) m(), - d("name", "as"), (n = W(Ri)).key = "*"; else { - for (b("{"), i = []; $(); ) { - var r; - me(p(), "name", "as") ? (r = h.token.value, m(), m(), (e = W(Ri)).key = r) : (e = W(Ri)).key = e.name, - i.push(e), v("punc", "}") || b(","); - } - b("}"); - } - (n || t || i) && d("name", "from"); - var o = h.token; - return d("string"), y(), new ui({ - all: n, - default: t, - path: o.value, - properties: i, - quote: o.quote - }); - }(); - break; - - case "let": - if (F()) { - m(); - var i = P(); - return y(), i; - } - break; - - case "yield": - if (h.in_generator) return k(); - } - return (me(p(), "punc", ":") ? function() { - var n = W(le); - Ln(h.labels, function(e) { - return e.name != n.name; - }) || f("Label " + n.name + " defined twice"); - b(":"), h.labels.push(n); - var e = x(); - h.labels.pop(), e instanceof at || n.references.forEach(function(e) { - e instanceof Wt && a(e.label.start, "Continue label `" + n.name + "` must refer to IterationStatement"); - }); - return new ot({ - body: e, - label: n - }); - } : k)(); - - case "punc": - switch (h.token.value) { - case "{": - return new rt({ - start: h.token, - body: C(), - end: _() - }); - - case "[": - case "(": - case "`": - return k(); - - case ";": - return h.in_directives = !1, m(), new Qn(); - - default: - g(); - } - - case "keyword": - switch (h.token.value) { - case "break": - return m(), E(Vt); - - case "class": - return m(), T(jt); - - case "const": - m(); - i = j(); - return y(), i; - - case "continue": - return m(), E(Wt); - - case "debugger": - return m(), y(), new Xn(); - - case "do": - m(); - n = re(x); - d("keyword", "while"); - var r = u(); - return y(!0), new ft({ - body: n, - condition: r - }); - - case "while": - return m(), new ct({ - condition: u(), - body: re(x) - }); - - case "for": - return m(), function() { - var e = v("name", "await") && m(); - b("("); - var n, t = null; - if ((e || !v("punc", ";")) && (t = v("keyword", "const") ? (m(), j(!0)) : v("name", "let") && F() ? (m(), - P(!0)) : v("keyword", "var") ? (m(), N(!0)) : ie(!0), e ? (d("name", "of"), n = dt) : v("operator", "in") ? (m(), - n = pt) : v("name", "of") && (m(), n = ae), n)) return t instanceof ti ? (1 < t.definitions.length && a(t.start, "Only one variable declaration allowed in for..in/of loop"), - n !== pt && t.definitions[0].value && a(t.definitions[0].value.start, "No initializers allowed in for..of loop")) : ee(t) || (t = ne(t)) instanceof Oi || a(t.start, "Invalid left-hand side in for..in/of loop"), - function(e, n) { - w(); - var t = ie(); - return b(")"), new e({ - init: n, - object: t, - body: re(x) - }); - }(n, t); - return function(e) { - b(";"); - var n = v("punc", ";") ? null : ie(); - b(";"); - var t = v("punc", ")") ? null : ie(); - return b(")"), new ut({ - init: e, - condition: n, - step: t, - body: re(x) - }); - }(t); - }(); - - case "function": - return (m(), v("operator", "*")) ? (m(), O(Mt)) : O(Ct); - - case "if": - return m(), function() { - var e = u(), n = x(), t = null; - v("keyword", "else") && (m(), t = x()); - return new Gt({ - condition: e, - body: n, - alternative: t - }); - }(); - - case "return": - 0 != h.in_function || l.bare_returns || f("'return' outside of function"), m(); - var o = null; - return v("punc", ";") ? m() : c() || (o = ie(), y()), new Bt({ - value: o - }); - - case "switch": - return m(), new Jt({ - expression: u(), - body: re(M) - }); - - case "throw": - m(), s(h.token) && f("Illegal newline after 'throw'"); - o = ie(); - return y(), new Lt({ - value: o - }); - - case "try": - return m(), function() { - var e = C(), n = null, t = null; - { - var i; - v("keyword", "catch") && (r = h.token, m(), i = null, v("punc", "(") && (m(), i = G(Ji), - b(")")), n = new ei({ - start: r, - argname: i, - body: C(), - end: _() - })); - } - { - var r; - v("keyword", "finally") && (r = h.token, m(), t = new ni({ - start: r, - body: C(), - end: _() - })); - } - n || t || f("Missing catch/finally blocks"); - return new Zt({ - body: e, - bcatch: n, - bfinally: t - }); - }(); - - case "var": - m(); - i = N(); - return y(), i; - - case "with": - return h.input.has_directive("use strict") && f("Strict mode may not include a with statement"), - m(), new ht({ - expression: u(), - body: x() - }); - } - } - g(); - }); - function k() { - var e = ie(); - return y(), new et({ - body: e - }); - } - function E(e) { - var n, t = null; - null != (t = !c() ? W(pe, !0) : t) ? ((n = Cn(function(e) { - return e.name == t.name; - }, h.labels)) || a(t.start, "Undefined label " + t.name), t.thedef = n) : 0 == h.in_loop && f(e.TYPE + " not inside a loop or switch"), - y(); - e = new e({ - label: t - }); - return n && n.references.push(e), e; - } - function S(e) { - if (v("name", e)) { - e = p(); - if (e && !me(e, "operator", "=") && !("punc" == e.type && /^[(;}]$/.test(e.value) || s(e))) return m(); - } - } - function T(e) { - var n = h.in_async, t = h.in_generator; - h.input.push_directives_stack(), h.input.add_directive("use strict"); - var i = e === jt ? W(ue) : W(Gi, !0), r = null; - v("keyword", "extends") && (m(), w(), r = I(!0)), b("{"); - for (var o = []; !v("punc", "}"); ) if (v("punc", ";")) m(); else { - var a = h.token, s = !!S("static"), f = S("async"); - if (v("operator", "*")) { - m(); - var c = v("name") && /^#/.test(h.token.value), u = L(), l = h.token, p = O(f ? At : Ot); - p.start = l, p.end = _(), o.push(new Ht({ - start: a, - static: s, - private: c, - key: u, - value: p, - end: _() - })); - } else { - c = v("name") && /^#/.test(h.token.value), u = L(); - if (v("punc", "(")) { - l = h.token, p = O(f ? Tt : Dt); - p.start = l, p.end = _(), o.push(new Ht({ - start: a, - static: s, - private: c, - key: u, - value: p, - end: _() - })); - } else { - f && g(f); - f = null; - if (v("operator", "=")) m(), h.in_async = !1, h.in_generator = !1, f = te(), h.in_generator = t, - h.in_async = n; else if (!v("punc", ";") && !v("punc", "}")) { - var d = null; - switch (u) { - case "get": - d = se; - break; - - case "set": - d = fe; - } - if (d) { - o.push(new d({ - start: a, - static: s, - private: v("name") && /^#/.test(h.token.value), - key: L(), - value: R(), - end: _() - })); - continue; - } - } - y(), o.push(new It({ - start: a, - static: s, - private: c, - key: u, - value: f, - end: _() - })); - } - } - } - return m(), h.input.pop_directives_stack(), h.in_generator = t, h.in_async = n, - new e({ - extends: r, - name: i, - properties: o - }); - } - function A(e) { - if (e instanceof Di) { - var n = null; - return e.elements[e.elements.length - 1] instanceof bi && (n = A(e.elements.pop().expression)), - new $i({ - start: e.start, - elements: e.elements.map(A), - rest: n, - end: e.end - }); - } - if (e instanceof Si) return new li({ - start: e.start, - name: A(e.left), - value: e.right, - end: e.end - }); - if (e instanceof li) return e.name = A(e.name), e; - if (e instanceof $i) return e.elements = e.elements.map(A), e.rest && (e.rest = A(e.rest)), - e; - if (e instanceof qi) return e.properties.forEach(function(e) { - e.value = A(e.value); - }), e.rest && (e.rest = A(e.rest)), e; - if (e instanceof lr) return e; - if (e instanceof Ci) { - n = null; - return e.properties[e.properties.length - 1] instanceof bi && (n = A(e.properties.pop().expression)), - new qi({ - start: e.start, - properties: e.properties.map(function(e) { - return e instanceof Fi || a(e.start, "Invalid destructuring assignment"), new zi({ - start: e.start, - key: e.key, - value: A(e.value), - end: e.end - }); - }), - rest: n, - end: e.end - }); - } - return e instanceof Ui ? e : e instanceof Xi ? new Ui(e) : void a(e.start, "Invalid arrow parameter"); - } - function D(e, n, t) { - var i = h.in_async, r = h.in_generator; - h.in_async = t, h.in_generator = !1; - var o = h.in_funarg; - h.in_funarg = h.in_function; - var a, s = e.map(A), f = (f = e.rest || null) && A(f); - h.in_funarg = o, b("=>"); - var c = h.in_loop, u = h.labels; - ++h.in_function, h.in_directives = !0, h.input.push_directives_stack(), h.in_loop = 0, - h.labels = []; - e = v("punc", "{") ? (a = C(), null) : (a = [], w(), te()), o = h.input.has_directive("use strict"); - h.input.pop_directives_stack(), --h.in_function, h.in_loop = c, h.labels = u, h.in_generator = r, - h.in_async = i; - e = new (t ? St : Et)({ - start: n, - argnames: s, - rest: f, - body: a, - value: e, - end: _() - }); - return o && e.each_argname(V), e; - } - var O = function(e) { - var n, t = h.in_async, i = h.in_generator; - /Defun$/.test(e.TYPE) ? (n = W(Vi), h.in_async = /^Async/.test(e.TYPE), h.in_generator = /Generator/.test(e.TYPE)) : (h.in_async = /^Async/.test(e.TYPE), - h.in_generator = /Generator/.test(e.TYPE), n = W(Wi, !0)), !n || e === gt || n instanceof Hi || g(_()), - b("("); - var r = h.in_funarg; - h.in_funarg = h.in_function; - var o = H(")", !l.strict, !1, function() { - return J(Ui); - }); - h.in_funarg = r; - var a = h.in_loop, s = h.labels; - ++h.in_function, h.in_directives = !0, h.input.push_directives_stack(), h.in_loop = 0, - h.labels = []; - var f = C(), r = h.input.has_directive("use strict"); - h.input.pop_directives_stack(), --h.in_function, h.in_loop = a, h.labels = s, h.in_generator = i, - h.in_async = t; - f = new e({ - name: n, - argnames: o, - rest: o.rest || null, - body: f - }); - return r && (n && V(n), f.each_argname(V)), f; - }; - function $() { - return v("name") || gr(h.token.value); - } - function z(e, n) { - return n.name && ((n = new e(n)).name = new (e === jt ? ue : Vi)(n.name)), n; - } - var q = n(function() { - if (v("name")) switch (h.token.value) { - case "async": - return (m(), d("keyword", "function"), v("operator", "*")) ? (m(), O(qt)) : O(zt); - - case "let": - m(); - var e = P(); - return y(), e; - } else if (v("keyword")) switch (h.token.value) { - case "class": - return m(), T(jt); - - case "const": - m(); - e = j(); - return y(), e; - - case "function": - return (m(), v("operator", "*")) ? (m(), O(Mt)) : O(Ct); - - case "var": - m(); - e = N(); - return y(), e; - } - g(); - }); - function C() { - b("{"); - for (var e = []; !v("punc", "}"); ) v("eof") && b("}"), e.push(x()); - return m(), e; - } - function M() { - b("{"); - for (var e, n, t, i, r = []; !v("punc", "}"); ) v("eof") && b("}"), v("keyword", "case") ? (e && (e.end = _()), - n = [], e = new Qt({ - start: (i = h.token, m(), i), - expression: ie(), - body: n - }), r.push(e), b(":")) : v("keyword", "default") ? (e && (e.end = _()), t && f("More than one default clause in switch statement"), - n = [], e = new Kt({ - start: (i = h.token, m(), b(":"), i), - body: n - }), r.push(e), t = e) : (n || g(), n.push(x())); - return e && (e.end = _()), m(), r; - } - function i(e, n) { - for (var t = []; ;) { - var i = h.token, r = G(e), o = null; - if (v("operator", "=") ? (m(), o = te(n)) : !n && (e === Yi || r instanceof Oi) && f("Missing initializer in declaration"), - t.push(new ai({ - start: i, - name: r, - value: o, - end: _() - })), !v("punc", ",")) break; - m(); - } - return t; - } - function F() { - var e = p(); - return me(e, "name") || me(e, "punc", "[") || me(e, "punc", "{"); - } - var j = function(e) { - return new ii({ - start: _(), - definitions: i(Yi, e), - end: _() - }); - }, P = function(e) { - return new ri({ - start: _(), - definitions: i(Bi, e), - end: _() - }); - }, N = function(e) { - return new oi({ - start: _(), - definitions: i(Li, e), - end: _() - }); - }; - var I = function(e) { - if (v("operator", "new")) return u = e, t = h.token, d("operator", "new"), (c = v("punc", ".") && me(p(), "name", "target") ? (m(), - m(), new nr()) : (n = I(!1), c = v("punc", "(") ? (m(), H(")", !l.strict)) : [], - new di({ - expression: n, - args: c - }))).start = t, c.end = _(), K(c, u); - var n, t, i = h.token; - if (v("punc")) { - switch (i.value) { - case "`": - return K(X(null), e); - - case "(": - if (m(), v("punc", ")")) return m(), D([], i); - var r = ie(!1, !0), o = i.comments_before.length; - [].unshift.apply(r.start.comments_before, i.comments_before), i.comments_before.length = 0, - i.comments_before = r.start.comments_before, 0 == (i.comments_before_length = o) && 0 < i.comments_before.length && ((a = i.comments_before[0]).nlb || (a.nlb = i.nlb, - i.nlb = !1)), i.comments_after = r.start.comments_after, r.start = i, b(")"); - var a = _(); - return a.comments_before = r.end.comments_before, a.comments_after.forEach(function(e) { - r.end.comments_after.push(e), e.nlb && (h.token.nlb = !0); - }), a.comments_after.length = 0, a.comments_after = r.end.comments_after, r.end = a, - v("punc", "=>") ? D(r instanceof hi ? r.expressions : [ r ], i) : K(r, e); - - case "[": - return K(Y(), e); - - case "{": - return K(B(), e); - } - g(); - } - if (v("keyword")) switch (i.value) { - case "class": - m(); - var s = T(Pt); - return s.start = i, s.end = _(), K(s, e); - - case "function": - return m(), (f = v("operator", "*") ? (m(), O(Ot)) : O(Dt)).start = i, f.end = _(), - K(f, e); - } - if (v("name")) { - var f, c = U(Xi, i); - if (m(), "async" == c.name) { - if (v("keyword", "function")) return m(), (f = v("operator", "*") ? (m(), O(At)) : O(Tt)).start = i, - f.end = _(), K(f, e); - if (v("name") && me(p(), "punc", "=>")) return i = h.token, c = U(Xi, i), m(), D([ c ], i, !0); - if (v("punc", "(")) { - var u = K(c, e); - if (!v("punc", "=>")) return u; - u = u.args; - return u[u.length - 1] instanceof bi && (u.rest = u.pop().expression), D(u, i, !0); - } - } - return v("punc", "=>") ? D([ c ], i) : K(c, e); - } - if (ye[h.token.type]) return K(function() { - var e, n = h.token, t = n.value; - switch (n.type) { - case "num": - isFinite(t) ? e = new or({ - value: t - }) : (e = new pr(), t < 0 && (e = new wi({ - operator: "-", - expression: e - }))); - break; - - case "bigint": - e = new ar({ - value: t - }); - break; - - case "string": - e = new rr({ - value: t, - quote: n.quote - }); - break; - - case "regexp": - e = new sr({ - value: t - }); - break; - - case "atom": - switch (t) { - case "false": - e = new hr(); - break; - - case "true": - e = new vr(); - break; - - case "null": - e = new fr(); - break; - - default: - g(); - } - break; - - default: - g(); - } - return m(), e.start = e.end = n, e; - }(), e); - g(); - }; - function H(e, n, t, i) { - i = i || te; - for (var r = !0, o = []; !v("punc", e) && (r ? r = !1 : b(","), !n || !v("punc", e)); ) if (t && v("punc", ",")) o.push(new lr({ - start: h.token, - end: h.token - })); else if (v("operator", "...")) { - if (i !== te) { - m(), o.rest = i(), o.rest instanceof li && a(o.rest.start, "Invalid rest parameter"); - break; - } - o.push(new bi({ - start: h.token, - expression: (m(), i()), - end: _() - })); - } else o.push(i()); - return b(e), o; - } - var Y = n(function() { - return b("["), new Di({ - elements: H("]", !l.strict, !0) - }); - }), R = n(function() { - return O(gt); - }), B = n(function() { - b("{"); - for (var e = !0, n = []; !v("punc", "}") && (e ? e = !1 : b(","), l.strict || !v("punc", "}")); ) { - var t = h.token; - if (v("operator", "*")) { - m(); - var i = L(), r = h.token, o = O(Ot); - o.start = r, o.end = _(), n.push(new ji({ - start: t, - key: i, - value: o, - end: _() - })); - } else if (v("operator", "...")) m(), n.push(new bi({ - start: t, - expression: te(), - end: _() - })); else if (me(p(), "operator", "=")) { - o = W(Xi); - m(), n.push(new Fi({ - start: t, - key: t.value, - value: new Si({ - start: t, - left: o, - operator: "=", - right: te(), - end: _() - }), - end: _() - })); - } else if (me(p(), "punc", ",") || me(p(), "punc", "}")) n.push(new Fi({ - start: t, - key: t.value, - value: W(Xi), - end: _() - })); else { - i = L(); - if (v("punc", "(")) { - var a = h.token; - (f = O(Dt)).start = a, f.end = _(), n.push(new ji({ - start: t, - key: i, - value: f, - end: _() - })); - } else if (v("punc", ":")) m(), n.push(new Fi({ - start: t, - key: i, - value: te(), - end: _() - })); else { - if ("name" == t.type) switch (i) { - case "async": - var s = v("operator", "*") && m(); - i = L(); - var f, a = h.token; - (f = O(s ? At : Tt)).start = a, f.end = _(), n.push(new ji({ - start: t, - key: i, - value: f, - end: _() - })); - continue; - - case "get": - n.push(new Ni({ - start: t, - key: L(), - value: R(), - end: _() - })); - continue; - - case "set": - n.push(new Pi({ - start: t, - key: L(), - value: R(), - end: _() - })); - continue; - } - g(); - } - } - } - return m(), new Ci({ - properties: n - }); - }); - function L() { - var e = h.token; - switch (e.type) { - case "operator": - de[e.value] || g(); - - case "num": - case "string": - case "name": - case "keyword": - case "atom": - return m(), "" + e.value; - - case "punc": - b("["); - var n = te(); - return b("]"), n; - - default: - g(); - } - } - function U(e, n) { - var t = n.value; - switch (t) { - case "await": - h.in_async && g(n); - break; - - case "super": - e = Zi; - break; - - case "this": - e = er; - break; - - case "yield": - h.in_generator && g(n); - } - return new e({ - name: "" + t, - start: n, - end: n - }); - } - function V(e) { - "arguments" != e.name && "eval" != e.name && "let" != e.name || a(e.start, "Unexpected " + e.name + " in strict mode"); - } - function W(e, n) { - if (!v("name")) return n || f("Name expected"), null; - e = U(e, h.token); - return h.input.has_directive("use strict") && e instanceof Hi && V(e), m(), e; - } - function G(e) { - var n = h.token; - if (v("punc", "[")) { - m(); - var t = H("]", !l.strict, !0, function() { - return J(e); - }); - return new $i({ - start: n, - elements: t, - rest: t.rest || null, - end: _() - }); - } - if (v("punc", "{")) { - m(); - for (var i = !0, r = [], o = null; !v("punc", "}") && (i ? i = !1 : b(","), l.strict || !v("punc", "}")); ) { - var a = h.token; - if (v("punc", "[") || me(p(), "punc", ":")) { - var s = L(); - b(":"), r.push(new zi({ - start: a, - key: s, - value: J(e), - end: _() - })); - } else { - if (v("operator", "...")) { - m(), o = G(e); - break; - } - s = W(e); - v("operator", "=") && (m(), s = new li({ - start: s.start, - name: s, - value: te(), - end: _() - })), r.push(new zi({ - start: a, - key: a.value, - value: s, - end: _() - })); - } - } - return b("}"), new qi({ - start: n, - properties: r, - rest: o, - end: _() - }); - } - return W(e); - } - function J(e) { - var n = h.token, e = G(e); - return v("operator", "=") ? (m(), new li({ - start: n, - name: e, - value: te(), - end: _() - })) : e; - } - function X(e) { - for (var n = e ? e.start : h.token, t = h.input.context().read_template, i = [], r = []; t(i); ) m(), - r.push(ie()), v("punc", "}") || g(); - return m(), new tr({ - start: n, - expressions: r, - strings: i, - tag: e, - end: _() - }); - } - function K(e, n) { - for (var t = e.start, i = null; ;) if (v("operator", "?") && me(p(), "punc", ".") && (m(), - m(), i = e), v("punc", "[")) { - m(); - var r = ie(); - b("]"), e = new gi({ - start: t, - optional: i === e, - expression: e, - property: r, - end: _() - }); - } else if (n && v("punc", "(")) m(), e = new pi({ - start: t, - optional: i === e, - expression: e, - args: H(")", !l.strict), - end: _() - }); else if (i === e || v("punc", ".")) i !== e && m(), e = new _i({ - start: t, - optional: i === e, - expression: e, - property: (r = void 0, r = h.token.value, d("name"), r), - end: _() - }); else { - if (!v("punc", "`")) break; - i && f("Invalid template on optional chain"), e = X(e); - } - if (i && (e.terminal = !0), e instanceof pi && !e.pure) for (var o = (t = e.start).comments_before, a = Vn(t, "comments_before_length") ? t.comments_before_length : o.length; 0 <= --a; ) { - var s = /[@#]__PURE__/.exec(o[a].value); - if (s) { - e.pure = s[0]; - break; - } - } - return e; - } - function o(e) { - var n = h.token; - if (h.in_async && v("name", "await")) return h.in_funarg === h.in_function && f("Invalid use of await in function argument"), - h.input.context().regex_allowed = !0, m(), new Ti({ - start: n, - expression: o(e), - end: _() - }); - if (h.in_generator && v("name", "yield")) { - h.in_funarg === h.in_function && f("Invalid use of yield in function argument"), - h.input.context().regex_allowed = !0, m(); - var t = null, i = !1; - return v("operator", "*") ? (m(), t = te(e), i = !0) : (v("punc") ? he[h.token.value] : c()) || (t = te(e)), - new Ai({ - start: n, - expression: t, - nested: i, - end: _() - }); - } - if (v("operator") && ge[n.value]) { - m(), w(); - e = Q(wi, n, o(e)); - return e.start = n, e.end = _(), e; - } - for (var r = I(!0); v("operator") && wr[h.token.value] && !s(h.token); ) (r = Q(xi, h.token, r)).start = n, - r.end = h.token, m(); - return r; - } - function Q(e, n, t) { - var i = n.value; - switch (i) { - case "++": - case "--": - ee(t) || a(n, "Invalid use of " + i + " operator"); - break; - - case "delete": - t instanceof Xi && h.input.has_directive("use strict") && a(t.start, "Calling delete on expression not allowed in strict mode"); - } - return new e({ - operator: i, - expression: t - }); - } - var Z = function(e, n, t) { - var i = v("operator") ? h.token.value : null, r = null != (i = "in" == i && t ? null : i) ? xr[i] : null; - if (null != r && n < r) { - m(); - r = Z(o(t), "**" == i ? r - 1 : r, t); - return Z(new ki({ - start: e.start, - left: e, - operator: i, - right: r, - end: r.end - }), n, t); - } - return e; - }; - var r = function(e) { - var n = h.token, t = Z(o(i = e), 0, i); - if (v("operator", "?")) { - m(); - var i = te(); - return b(":"), new Ei({ - start: n, - condition: t, - consequent: i, - alternative: te(e), - end: _() - }); - } - return t; - }; - function ee(e) { - return e instanceof mi && !e.optional || e instanceof Xi; - } - function ne(e) { - if (e instanceof Di) { - var n = null; - if (e.elements[e.elements.length - 1] instanceof bi && !((n = ne(e.elements.pop().expression)) instanceof Oi || ee(n))) return e; - var t = e.elements.map(ne); - return Ln(t, function(e) { - return e instanceof li || e instanceof Oi || e instanceof lr || ee(e); - }) ? new $i({ - start: e.start, - elements: t, - rest: n, - end: e.end - }) : e; - } - if (e instanceof Si) { - t = ne(e.left); - return t instanceof Oi || ee(t) ? new li({ - start: e.start, - name: t, - value: e.right, - end: e.end - }) : e; - } - if (!(e instanceof Ci)) return e; - n = null; - if (e.properties[e.properties.length - 1] instanceof bi && !((n = ne(e.properties.pop().expression)) instanceof Oi || ee(n))) return e; - for (var i = [], r = 0; r < e.properties.length; r++) { - var o = e.properties[r]; - if (!(o instanceof Fi)) return e; - var a = ne(o.value); - if (!(a instanceof li || a instanceof Oi || ee(a))) return e; - i.push(new zi({ - start: o.start, - key: o.key, - value: a, - end: o.end - })); - } - return new qi({ - start: e.start, - properties: i, - rest: n, - end: e.end - }); - } - function te(e) { - var n = h.token, t = r(e), i = h.token.value; - if (v("operator") && be[i]) { - if (ee(t) || "=" == i && (t = ne(t)) instanceof Oi) return m(), new Si({ - start: n, - left: t, - operator: i, - right: te(e), - end: _() - }); - f("Invalid assignment"); - } - return t; - } - function ie(e, n) { - for (var t = h.token, i = []; ;) { - if (n && v("operator", "...")) { - m(), i.rest = G(Ui); - break; - } - if (i.push(te(e)), !v("punc", ",")) break; - if (m(), n && v("punc", ")") && me(p(), "punc", "=>")) break; - } - return 1 != i.length || i.rest ? new hi({ - start: t, - expressions: i, - end: _() - }) : i[0]; - } - function re(e) { - ++h.in_loop; - e = e(); - return --h.in_loop, e; - } - if (l.expression) { - w(); - e = ie(); - return d("eof"), e; - } - return function() { - var e = h.token, n = []; - for (h.input.push_directives_stack(); !v("eof"); ) n.push(x()); - h.input.pop_directives_stack(); - var t = _() || e, i = l.toplevel; - return i ? (i.body = i.body.concat(n), i.end = t) : i = new mt({ - start: e, - body: n, - end: t - }), i; - }(); - } - function v(e, n, t, i) { - this.eliminated = 0, this.exported = !1, this.global = !1, this.id = e, this.init = i, - this.mangled_name = null, this.name = t.name, this.orig = [ t ], this.references = [], - this.replaced = 0, this.scope = n, this.undeclared = !1; - } - v.prototype = { - forEach: function(e) { - this.orig.forEach(e), this.references.forEach(e); - }, - mangle: function(e) { - var n, t = e.cache && e.cache.props; - this.global && t && t.has(this.name) ? this.mangled_name = t.get(this.name) : this.mangled_name || this.unmangleable(e) || (n = this.redefined(), - this.mangled_name = n ? n.mangled_name || n.name : function(e, i) { - var n, t = e.scope, r = m(t, i), o = t.cname_holes, a = Object.create(null), s = [ t ]; - e.forEach(function(e) { - var n = e.scope; - do { - if (!(s.indexOf(n) < 0)) break; - for (var t in m(n, i)) a[t] = !0; - } while (s.push(n), n = n.parent_scope); - }); - for (var f = 0; f < o.length; f++) if (n = S(o[f]), !a[n]) return o.splice(f, 1), - r[n] = !0, n; - for (;;) if (n = S(++t.cname), !(r[n] || j[n] || i.reserved.has[n])) { - if (!a[n]) break; - o.push(t.cname); - } - return r[n] = !0, n; - }(this, e), this.global && t && t.set(this.name, this.mangled_name)); - }, - redefined: function() { - var e = this.defun; - if (e) { - var n = this.name, e = e.variables.get(n) || e instanceof mt && e.globals.get(n) || this.orig[0] instanceof Yi && Cn(function(e) { - return e.name == n; - }, e.enclosed); - return e && e !== this ? e.redefined() || e : void 0; - } - }, - unmangleable: function(e) { - return this.global && !e.toplevel || this.exported || this.undeclared || !e.eval && this.scope.pinned() || e.keep_fnames && (this.orig[0] instanceof Gi || this.orig[0] instanceof ue || this.orig[0] instanceof Vi || this.orig[0] instanceof Wi); - } - }; - var Er = Bn("delete ++ --"); - function Sr(e, n) { - return n instanceof Si ? n.left === e && e : n instanceof li ? n.name === e && e : n instanceof Oi || n instanceof zi ? e : n instanceof lt ? n.init === e && e : n instanceof yi ? Er[n.operator] && n.expression : void 0; - } - function d(e, n) { - e.enclosed = [], e.parent_scope = n, e.functions = new Un(), e.variables = new Un(), - n && (e.make_def = n.make_def); - } - function h(e, n) { - d(e, n), e.uses_eval = !1, e.uses_with = !1; - } - function m(e, n) { - var t, i = e.names_in_use; - return i || (e.cname = -1, e.cname_holes = [], e.names_in_use = i = Object.create(null), - t = n.cache && n.cache.props, e.enclosed.forEach(function(e) { - e.unmangleable(n) && (i[e.name] = !0), e.global && t && t.has(e.name) && (i[t.get(e.name)] = !0); - })), i; - } - function b(e) { - return e = oe(e, { - eval: !1, - ie: !1, - keep_fnames: !1, - reserved: [], - toplevel: !1, - v8: !1, - webkit: !1 - }), Array.isArray(e.reserved) || (e.reserved = []), Hn(e.reserved, "arguments"), - e.reserved.has = Bn(e.reserved), e; - } - mt.DEFMETHOD("figure_out_scope", function(u) { - u = oe(u, { - cache: null, - ie: !1 - }); - var l = this, s = null, f = !1, t = 0, c = l.parent_scope = null, p = new mr(function(i, e) { - if (i instanceof jt) { - var n = f; - return f = p.parent() instanceof si, i.name.walk(p), f = n, o(function() { - i.extends && i.extends.walk(p), i.properties.forEach(function(e) { - e.walk(p); - }); - }), !0; - } - if (i instanceof ti) { - n = f; - return f = p.parent() instanceof si, e(), f = n, !0; - } - if (i instanceof $t) { - n = f; - return f = p.parent() instanceof si, i.name.walk(p), f = n, o(function() { - i.argnames.forEach(function(e) { - e.walk(p); - }), i.rest && i.rest.walk(p), tt(i, p); - }), !0; - } - if (i instanceof Xt) return i.init_vars(c), e(), !0; - if (i instanceof Zt) return o(function() { - tt(i, p); - }), i.bcatch && i.bcatch.walk(p), i.bfinally && i.bfinally.walk(p), !0; - if (i instanceof ht) { - for (var t = c; !(t = t.resolve()).uses_with && (t.uses_with = !0, t = t.parent_scope); ); - return o(e), !0; - } - if (i instanceof nt) return o(e), !0; - var r; - function o(e) { - i.init_vars(c); - var n = s, t = c; - i instanceof vt && (s = i), c = i, e(), c = t, s = n; - } - function a(e, n) { - e !== n && (i.mark_enclosed(u), n = n.find_variable(i.name), i.thedef !== n && ((i.thedef = n).orig.push(i), - i.mark_enclosed(u))); - } - i instanceof Ii && (i.scope = c), i instanceof le && ((i.thedef = i).references = []), - i instanceof Ji ? c.def_variable(i).defun = s : i instanceof Yi ? ((r = c.def_variable(i)).defun = s, - f && (r.exported = !0)) : i instanceof Vi ? (r = s.def_function(i, p.parent()), - f && (r.exported = !0), a(s, c)) : i instanceof Ui ? (s.def_variable(i), a(s, c)) : i instanceof Wi ? (r = s.def_function(i, "arguments" == i.name ? void 0 : s), - u.ie && (r.defun = s.parent_scope.resolve())) : i instanceof Bi ? (r = c.def_variable(i), - f && (r.exported = !0)) : i instanceof Li && (r = s.def_variable(i, i instanceof Ri ? void 0 : null), - f && (r.exported = !0), a(s, c)); - }); - l.make_def = function(e, n) { - return new v(++t, this, e, n); - }, l.walk(p), l.globals = new Un(); - var d = [], p = new mr(function(e) { - if (e instanceof ei) return e.argname instanceof Oi ? (d.push(e), e.argname.walk(p), - d.pop(), tt(e, p), !0) : void 0; - if (e instanceof _t) return d.push(e), e.argnames.forEach(function(e) { - e.walk(p); - }), e.rest && e.rest.walk(p), d.pop(), kt(e, p), !0; - if (e instanceof Ut) return e.label && e.label.thedef.references.push(e), !0; - if (e instanceof Hi) { - var n, t = e.definition(); - if (t.preinit = t.references.length, e instanceof Ji) { - if (n = t.redefined()) for (var i = e.scope; i && (Hn(i.enclosed, n), i !== n.scope); i = i.parent_scope); - } else e instanceof Yi && (n = t.redefined()) && (n.const_redefs = !0); - return "arguments" != e.name ? !0 : ((r = e instanceof Li && p.parent()) instanceof ai && !r.value || (a = e.scope.resolve().find_variable("arguments")) && h(a) && (a.scope.uses_arguments = 3), - !0); - } - if (e instanceof Xi) { - for (var r, o = e.name, a = e.scope.find_variable(o), s = d.length; 0 < s && a && !((s = d.lastIndexOf(a.scope, s - 1)) < 0); ) { - var f = a.orig[0]; - if (f instanceof Ji || f instanceof Ui || f instanceof Wi) { - e.in_arg = !0; - break; - } - a = a.scope.parent_scope.find_variable(o); - } - if (a ? "arguments" == o && h(a) && (Sr(e, r = p.parent()) ? a.scope.uses_arguments = 3 : a.scope.uses_arguments < 2 && !(r instanceof mi && r.expression === e) ? a.scope.uses_arguments = 2 : a.scope.uses_arguments || (a.scope.uses_arguments = !0)) : a = l.def_global(e), - "eval" == o) if ("Call" == (r = p.parent()).TYPE && r.expression === e) for (i = e.scope; !(i = i.resolve()).uses_eval && (i.uses_eval = !0, - i = i.parent_scope); ); else a.undeclared && (l.uses_eval = !0); - if (a.init instanceof $t && a.scope !== a.init.name.scope) { - var c = e.scope; - do { - if (c === a.init.name.scope) break; - } while (c = c.parent_scope); - c || (a.init = void 0); - } - return e.thedef = a, e.reference(u), !0; - } - }); - function h(e) { - return e.orig[0] instanceof Ui && !(e.orig[1] instanceof Ui || e.orig[2] instanceof Ui) && !yt(e.scope); - } - function i(e, n) { - var t = e.name, i = e.thedef; - if (Ln(i.orig, function(e) { - return !(e instanceof Yi || e instanceof Bi); - })) { - var r, o = n.find_variable(t); - return (o ? (r = o.redefined()) && (o = r) : o = l.globals.get(t), o ? o.orig.push(e) : o = n.def_variable(e), - o.undeclared && l.variables.set(t, o), "arguments" == t && h(i) && e instanceof Wi) ? 1 : (i.defun = o.scope, - i.forEach(function(e) { - e.redef = i, e.thedef = o, e.reference(u); - }), 1); - } - } - l.walk(p), u.ie && l.walk(new mr(function(e) { - if (e instanceof Ji) { - var n = e.thedef.defun; - return i(e, n = n.name instanceof Wi && n.name.name == e.name ? n.parent_scope.resolve() : n), - !0; - } - if (e instanceof Wi) { - n = e.thedef; - return i(e, e.scope.parent_scope.resolve()) ? void 0 !== e.thedef.init ? e.thedef.init = !1 : n.init && (e.thedef.init = n.init) : delete n.defun, - !0; - } - })); - }), mt.DEFMETHOD("def_global", function(e) { - var n = this.globals, t = e.name; - if (n.has(t)) return n.get(t); - e = this.make_def(e); - return e.undeclared = !0, e.global = !0, n.set(t, e), e; - }), nt.DEFMETHOD("init_vars", function(e) { - d(this, e); - }), vt.DEFMETHOD("init_vars", function(e) { - h(this, e); - }), Et.DEFMETHOD("init_vars", function(e) { - return h(this, e), this; - }), St.DEFMETHOD("init_vars", function(e) { - h(this, e); - }), _t.DEFMETHOD("init_vars", function(e) { - return h(this, e), this.uses_arguments = !1, this.def_variable(new Ui({ - name: "arguments", - start: this.start, - end: this.end - })), this; - }), Ii.DEFMETHOD("mark_enclosed", function(e) { - for (var n = this.definition(), t = this.scope; t && (Hn(t.enclosed, n), e ? e.keep_fnames && t.functions.each(function(e) { - Hn(n.scope.enclosed, e); - }) : delete t._var_names, t !== n.scope); t = t.parent_scope); - }), Ii.DEFMETHOD("reference", function(e) { - this.definition().references.push(this), this.mark_enclosed(e); - }), nt.DEFMETHOD("find_variable", function(e) { - return this.variables.get(e) || this.parent_scope && this.parent_scope.find_variable(e); - }), nt.DEFMETHOD("def_function", function(e, n) { - var t = this.def_variable(e, n); - return (!t.init || t.init instanceof $t) && (t.init = n), this.functions.set(e.name, t), - t; - }), nt.DEFMETHOD("def_variable", function(e, n) { - var t = this.variables.get(e.name); - return t ? (t.orig.push(e), t.init instanceof bt && (t.init = n)) : (t = this.make_def(e, n), - this.variables.set(e.name, t), t.global = !this.parent_scope), e.thedef = t; - }), Ii.DEFMETHOD("unmangleable", function(e) { - var n = this.definition(); - return !n || n.unmangleable(e); - }), le.DEFMETHOD("unmangleable", Fn), Ii.DEFMETHOD("definition", function() { - return this.thedef; - }), mt.DEFMETHOD("mangle_names", function(o) { - o = b(o); - var n, r = -1; - o.cache && o.cache.props && (n = m(this, o), o.cache.props.each(function(e) { - n[e] = !0; - })); - var a = [], s = new mr(function(n, e) { - if (n instanceof ot) { - var t = r; - return e(), o.v8 && function(e) { - var n, t = 0; - for (;n = e.parent(t++); ) { - if (n instanceof it) return n instanceof mt && !o.toplevel; - if (n instanceof ot) return !0; - } - }(s) || (r = t), !0; - } - var i; - if (n instanceof nt) return o.webkit && n instanceof at && n.init instanceof ri && n.init.definitions.forEach(function(e) { - e.name.match_symbol(function(e) { - var n, t, i; - e instanceof Bi && (n = e.definition(), t = e.scope.parent_scope, i = t.def_variable(e), - e.thedef = n, t.to_mangle.push(i), n.redefined = function() { - return i; - }); - }); - }, !0), n.to_mangle = [], n.variables.each(function(e) { - !function(n) { - var e = n.orig[0], t = n.redefined(); - if (!t) { - if (!(e instanceof Yi)) return !1; - var i = n.scope.resolve(); - if (n.scope === i) return !1; - if (n.scope.parent_scope.find_variable(e.name)) return !1; - t = i.def_variable(e), i.to_mangle.push(t); - } - a.push(n), n.references.forEach(r), (e instanceof Ji || e instanceof Yi) && r(e); - return !0; - function r(e) { - e.thedef = t, e.reference(o), e.thedef = n; - } - }(e) && n.to_mangle.push(e); - }), e(), o.cache && n instanceof mt && n.globals.each(f), n instanceof Ct && s.has_directive("use asm") && ((e = new Xi(n.name)).scope = n, - e.reference(o)), n.to_mangle.forEach(f), !0; - if (n instanceof le) { - for (;i = S(++r), j[i]; ); - return n.mangled_name = i, !0; - } - }); - function f(e) { - o.reserved.has[e.name] || e.mangle(o); - } - this.walk(s), a.forEach(f); - }), mt.DEFMETHOD("find_colliding_names", function(t) { - var i = t.cache && t.cache.props, n = Object.create(j); - return t.reserved.forEach(r), this.globals.each(o), this.walk(new mr(function(e) { - e instanceof nt && e.variables.each(o); - })), n; - function r(e) { - n[e] = !0; - } - function o(e) { - var n = e.name; - if (e.global && i && i.has(n)) n = i.get(n); else if (!e.unmangleable(t)) return; - r(n); - } - }), mt.DEFMETHOD("expand_names", function(i) { - S.reset(), S.sort(), i = b(i); - var r = this.find_colliding_names(i), o = 0; - function n(n) { - var e, t; - n.global && i.cache || n.unmangleable(i) || i.reserved.has[n.name] || (e = n.redefined(), - t = e ? e.rename || e.name : function() { - for (var e; e = S(o++), r[e]; ); - return e; - }(), n.rename = t, n.forEach(function(e) { - e.definition() === n && (e.name = t); - })); - } - this.globals.each(n), this.walk(new mr(function(e) { - e instanceof nt && e.variables.each(n); - })); - }), Gn.DEFMETHOD("tail_node", Pn), hi.DEFMETHOD("tail_node", function() { - return this.expressions[this.expressions.length - 1]; - }), mt.DEFMETHOD("compute_char_frequency", function(e) { - e = b(e), S.reset(); - var n = Ii.prototype.add_source_map; - try { - Ii.prototype.add_source_map = function() { - this.unmangleable(e) || S.consider(this.name, -1); - }, e.properties && (_i.prototype.add_source_map = function() { - S.consider(this.property, -1); - }, gi.prototype.add_source_map = function() { - !function e(n) { - n instanceof rr ? S.consider(n.value, -1) : n instanceof Ei ? (e(n.consequent), - e(n.alternative)) : n instanceof hi && e(n.tail_node()); - }(this.property); - }), S.consider(this.print_to_string(), 1); - } finally { - Ii.prototype.add_source_map = n, delete _i.prototype.add_source_map, delete gi.prototype.add_source_map; - } - S.sort(); - }); - var y, w, x, k, E, S = (y = Object.create(null), k = U("0123456789"), E = U("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_"), - G.consider = function(e, n) { - for (var t = e.length; 0 <= --t; ) x[e[t]] += n; - }, G.sort = function() { - w = E.sort(W).concat(k).sort(W); - }, (G.reset = V)(), G); - function U(e) { - for (var n = [], t = 0; t < e.length; t++) { - var i = e[t]; - n.push(i), y[i] = -.01 * t; - } - return n; - } - function V() { - w = null, x = Object.create(y); - } - function W(e, n) { - return x[n] - x[e]; - } - function G(e) { - var n = E[e % 54]; - for (e = Math.floor(e / 54); 0 <= --e; e >>= 6) n += w[63 & e]; - return n; - } - function Tr(e, n) { - if (!(this instanceof Tr)) return new Tr(e, n); - _r.call(this, this.before, this.after), this.options = oe(e, { - annotations: !n, - arguments: !n, - arrows: !n, - assignments: !n, - awaits: !n, - booleans: !n, - collapse_vars: !n, - comparisons: !n, - conditionals: !n, - dead_code: !n, - default_values: !n, - directives: !n, - drop_console: !1, - drop_debugger: !n, - evaluate: !n, - expression: !1, - functions: !n, - global_defs: !1, - hoist_exports: !n, - hoist_funs: !1, - hoist_props: !n, - hoist_vars: !1, - ie: !1, - if_return: !n, - imports: !n, - inline: !n, - join_vars: !n, - keep_fargs: n, - keep_fnames: !1, - keep_infinity: !1, - loops: !n, - merge_vars: !n, - negate_iife: !n, - objects: !n, - optional_chains: !n, - passes: 1, - properties: !n, - pure_funcs: null, - pure_getters: !n && "strict", - reduce_funcs: !n, - reduce_vars: !n, - rests: !n, - sequences: !n, - side_effects: !n, - spreads: !n, - strings: !n, - switches: !n, - templates: !n, - top_retain: null, - toplevel: !(!e || !e.top_retain), - typeofs: !n, - unsafe: !1, - unsafe_comps: !1, - unsafe_Function: !1, - unsafe_math: !1, - unsafe_proto: !1, - unsafe_regexp: !1, - unsafe_undefined: !1, - unused: !n, - varify: !n, - webkit: !1, - yields: !n - }, !0); - n = this.options.evaluate; - this.eval_threshold = /eager/.test(n) ? 1 / 0 : +n; - var t = this.options.global_defs; - if ("object" == typeof t) for (var i in t) /^@/.test(i) && Vn(t, i) && (t[i.slice(1)] = kr(t[i], { - expression: !0 - })); - !0 === this.options.inline && (this.options.inline = 3), this.drop_fargs = this.options.keep_fargs ? Fn : function(e, n) { - if (e.length_read) return !1; - var t = e.name; - if (!t) return n && "Call" == n.TYPE && n.expression === e; - if (t.fixed_value() !== e) return !1; - t = t.definition(); - if (t.direct_access) return !1; - t = t.escaped; - return t && 1 != t.depth; - }; - var r = this.options.pure_funcs; - "function" == typeof r ? this.pure_funcs = r : "string" == typeof r ? this.pure_funcs = function(e) { - var n; - return e instanceof pi ? n = e.expression : e instanceof tr && (n = e.tag), !(n && r === n.print_to_string()); - } : Array.isArray(r) ? this.pure_funcs = function(e) { - var n; - return e instanceof pi ? n = e.expression : e instanceof tr && (n = e.tag), !(n && qn(n.print_to_string(), r)); - } : this.pure_funcs = jn; - n = this.options.sequences; - this.sequences_limit = 1 == n ? 800 : 0 | n; - var o = this.options.top_retain; - o instanceof RegExp ? this.top_retain = function(e) { - return o.test(e.name); - } : "function" == typeof o ? this.top_retain = o : o && ("string" == typeof o && (o = o.split(/,/)), - this.top_retain = function(e) { - return qn(e.name, o); - }); - n = this.options.toplevel; - this.toplevel = "string" == typeof n ? { - funcs: /funcs/.test(n), - vars: /vars/.test(n) - } : { - funcs: n, - vars: n - }; - } - function J(e) { - return "comment2" == e.type && /@preserve|@license|@cc_on/i.test(e.value); - } - function Ar(f) { - f = oe(f, { - annotations: !1, - ascii_only: !1, - beautify: !1, - braces: !1, - comments: !1, - galio: !1, - ie: !1, - indent_level: 4, - indent_start: 0, - inline_script: !0, - keep_quoted_props: !1, - max_line_len: !1, - preamble: null, - preserve_line: !1, - quote_keys: !1, - quote_style: 0, - semicolons: !0, - shebang: !0, - source_map: null, - v8: !1, - webkit: !1, - width: 80, - wrap_iife: !1 - }, !0); - var n, c = Fn; - f.comments && (n = f.comments, "string" == typeof f.comments && /^\/.*\/[a-zA-Z]*$/.test(f.comments) && (N = f.comments.lastIndexOf("/"), - n = new RegExp(f.comments.substr(1, N - 1), f.comments.substr(N + 1))), c = n instanceof RegExp ? function(e) { - return "comment5" != e.type && n.test(e.value); - } : "function" == typeof n ? function(e) { - return "comment5" != e.type && n(this, e); - } : "some" === n ? J : jn); - var i, r, o, a, s, t, u, l = 0, p = 1, d = 0, h = f.indent_start, v = 0, m = !0, _ = f.source_map && [], g = !1, b = !1, y = -1; - function e() { - s = a = !1, t = []; - var e = u; - return u = i = "", e; - } - e(); - var w = f.ascii_only ? function(e, t) { - return (e = t ? e.replace(/[\ud800-\udbff][\udc00-\udfff]/g, function(e) { - return "\\u{" + (e.charCodeAt(0) - 55232 << 10 | e.charCodeAt(1) - 56320).toString(16) + "}"; - }) : e).replace(/[\u0000-\u001f\u007f-\uffff]/g, function(e) { - var n = e.charCodeAt(0).toString(16); - if (n.length <= 2 && !t) { - for (;n.length < 2; ) n = "0" + n; - return "\\x" + n; - } - for (;n.length < 4; ) n = "0" + n; - return "\\u" + n; - }); - } : function(e) { - for (var n, t = "", i = 0, r = 0; i < e.length; i++) { - var o = e.charCodeAt(i); - if (55296 <= (n = o) && n <= 56319) { - if (R(e.charCodeAt(i + 1))) { - i++; - continue; - } - } else if (!R(o)) continue; - t += e.slice(r, i) + "\\u" + o.toString(16), r = i + 1; - } - return 0 == r ? e : t + e.slice(r); - }; - function x(e) { - return "'" + e.replace(/\x27/g, "\\'") + "'"; - } - function k(e) { - return '"' + e.replace(/\x22/g, '\\"') + '"'; - } - var E = [ null, x, k, function(e, n) { - return ("'" == n ? x : k)(e); - } ][f.quote_style] || function(e, n, t, i) { - return (i < t ? x : k)(e); - }; - function S(t, e) { - var i = 0, r = 0; - return t = t.replace(/[\\\b\f\n\r\v\t\x22\x27\u2028\u2029\0\ufeff]/g, function(e, n) { - switch (e) { - case '"': - return ++i, '"'; - - case "'": - return ++r, "'"; - - case "\\": - return "\\\\"; - - case "\n": - return "\\n"; - - case "\r": - return "\\r"; - - case "\t": - return "\\t"; - - case "\b": - return "\\b"; - - case "\f": - return "\\f"; - - case "\v": - return f.ie ? "\\x0B" : "\\v"; - - case "\u2028": - return "\\u2028"; - - case "\u2029": - return "\\u2029"; - - case "\ufeff": - return "\\ufeff"; - - case "\0": - return /[0-9]/.test(t.charAt(n + 1)) ? "\\x00" : "\\0"; - } - return e; - }), E(w(t), e, i, r); - } - var T = _ ? function(n, t) { - _.forEach(function(e) { - e.line += n, e.col += t; - }); - } : Mn, A = _ ? function() { - _.forEach(function(e) { - f.source_map.add(e.token.file, e.line, e.col, e.token.line, e.token.col, e.name || "name" != e.token.type ? e.name : e.token.value); - }), _ = []; - } : Mn; - function D(e) { - var n = u.lastIndexOf("\n"); - v < n && (v = n); - var t = u.slice(0, v), n = u.slice(v); - for (T(e, n.length - l), p += e, d += e, l = n.length, u = t; e--; ) u += "\n"; - u += n; - } - var O = f.max_line_len ? function() { - m ? l > f.max_line_len && Gn.warn("Output exceeds {max_line_len} characters", f) : (l > f.max_line_len && D(1), - m = !0, A()); - } : Mn, $ = Bn("( [ + * / - , ."), z = f.beautify || f.comments || f.max_line_len || f.preserve_line || f.shebang || !f.semicolons || f.source_map || f.width ? function(e) { - var n = e.charAt(0); - g && n && (g = !1, "\n" != n && (z("\n"), C())), b && n && (b = !1, /[\s;})]/.test(n) || q()), - y = -1; - var t = i.slice(-1); - s && (s = !1, (":" == t && "}" == n || (!n || ";}".indexOf(n) < 0) && ";" != t) && (f.semicolons || $[n] ? (u += ";", - l++, d++) : (O(), u += "\n", d++, p++, l = 0, /^\s+$/.test(e) && (s = !0)), f.beautify || (a = !1))), - a && ((B(t) && (B(n) || "\\" == n) || "/" == n && n == t || ("+" == n || "-" == n) && n == i || "--" == e && "!" == i || "in" == e && "/" == t || "--" == i && ">" == n) && (u += " ", - l++, d++), "<" == t && "!" == e || (a = !1)), o && (_.push({ - token: o, - name: r, - line: p, - col: l - }), o = !1, m && A()), u += e, d += e.length; - n = e.split(/\r?\n/), t = n.length - 1; - p += t, l += n[0].length, 0 < t && (O(), l = n[t].length), i = e; - } : function(e) { - var n = e.charAt(0), t = i.slice(-1); - s && (s = !1, (":" == t && "}" == n || (!n || ";}".indexOf(n) < 0) && ";" != t) && (u += ";", - a = !1)), a && ((B(t) && (B(n) || "\\" == n) || "/" == n && n == t || ("+" == n || "-" == n) && n == i || "--" == e && "!" == i || "in" == e && "/" == t || "--" == i && ">" == n) && (u += " "), - "<" == t && "!" == e || (a = !1)), u += e, i = e; - }, q = f.beautify ? function() { - z(" "); - } : function() { - a = !0; - }, C = f.beautify ? function(e) { - g && z("\n"), z(function e(n, t) { - if (t <= 0) return ""; - if (1 == t) return n; - var i = e(n, t >> 1); - return i += i, 1 & t ? i + n : i; - }(" ", e ? h - (f.indent_level >> 1) : h)); - } : Mn, M = f.beautify ? function(e) { - var n = h; - h += f.indent_level, e(), h = n; - } : function(e) { - e(); - }, F = f.max_line_len || f.preserve_line ? function() { - O(), v = u.length, m = !1; - } : Mn, j = f.beautify ? function() { - if (y < 0) return z("\n"); - "\n" != u[y] && (u = u.slice(0, y) + "\n" + u.slice(y), d++, p++), y++; - } : F, P = f.beautify ? function() { - z(";"); - } : function() { - s = !0; - }; - var N = _ ? function(e, n) { - o = e, r = n; - } : Mn; - function I(e, n) { - g || (!e.nlb || !n && (e = u.lastIndexOf("\n"), /^ *$/.test(u.slice(e + 1))) ? n && (b = !0) : g = !0); - } - function H(e) { - var n = e.value.replace(/[@#]__PURE__/g, " "); - return (!/^\s*$/.test(n) || /^\s*$/.test(e.value)) && (/comment[134]/.test(e.type) ? (z("//" + n), - g = !0) : "comment2" == e.type && z("/*" + n + "*/"), 1); - } - return { - get: function() { - return m || O(), u; - }, - reset: e, - indent: C, - should_break: f.width ? function() { - return l - h >= f.width; - } : Fn, - has_parens: function() { - return "(" == i.slice(-1); - }, - newline: j, - print: z, - space: q, - comma: function() { - F(), z(","), F(), q(); - }, - colon: function() { - z(":"), q(); - }, - last: function() { - return i; - }, - semicolon: P, - force_semicolon: function() { - s && z(";"), z(";"); - }, - to_utf8: w, - print_name: function(e) { - z(w(e.toString(), !0)); - }, - print_string: f.inline_script ? function(e, n) { - e = S(e, n).replace(/<\x2f(script)([>\/\t\n\f\r ])/gi, "<\\/$1$2"), z(e.replace(/\x3c!--/g, "\\x3c!--").replace(/--\x3e/g, "--\\x3e")); - } : function(e, n) { - z(S(e, n)); - }, - with_indent: M, - with_block: function(e) { - z("{"), j(), M(e), C(), z("}"); - }, - with_parens: function(e) { - z("("), F(), e(), F(), z(")"); - }, - with_square: function(e) { - z("["), F(), e(), F(), z("]"); - }, - add_mapping: N, - option: function(e) { - return f[e]; - }, - prepend_comments: f.comments || f.shebang ? function(e) { - var t, i = this; - e instanceof Rt ? t = e.value : e instanceof Ai && (t = e.expression); - var r, n, o = (o = s(e)) || []; - t && ((r = new mr(function(e) { - if (n = e, !((t = r.parent()) instanceof ki ? t.left === n : "Call" == t.TYPE ? t.expression === n : t instanceof Ei ? t.condition === n : t instanceof _i ? t.expression === n : t instanceof Rt || (t instanceof hi ? t.expressions[0] === n : t instanceof gi ? t.expression === n : t instanceof xi || t instanceof Ai))) return !0; - var n, t, e = s(e); - e && (o = o.concat(e)); - })).push(e), t.walk(r)), 0 == d && (0 < o.length && f.shebang && "comment5" == o[0].type && (z("#!" + o.shift().value + "\n"), - C()), (n = f.preamble) && z(n.replace(/\r\n?|[\n\u2028\u2029]|\s*$/g, "\n"))), o = o.filter(c, e); - var a = !1; - function s(e) { - var n = e.start; - if (!n) { - if (!t) return; - e.start = n = new Y(); - } - e = n.comments_before; - if (!e) { - if (!t) return; - n.comments_before = e = []; - } - if (e._dumped !== i) return e._dumped = i, e; - } - o.forEach(function(e, n) { - I(e, n), H(e) && (a = !0); - }), a && I(e.start, !0); - } : Mn, - append_comments: f.comments ? function(e, t) { - var n, i = e.end; - !i || (n = i[t ? "comments_before" : "comments_after"]) && n._dumped !== this && (e instanceof Jn || Ln(n, function(e) { - return !/comment[134]/.test(e.type); - })) && (n._dumped = this, i = u.length, n.filter(c, e).forEach(function(e, n) { - I(e, n || !t), H(e); - }), u.length > i && (y = i)); - } : Mn, - push_node: function(e) { - t.push(e); - }, - pop_node: f.preserve_line ? function() { - var e = t.pop(); - e.start && e.start.line > p && D(e.start.line - p); - } : function() { - t.pop(); - }, - parent: function(e) { - return t[t.length - 2 - (e || 0)]; - } - }; - } - t(Tr.prototype = new _r(), { - option: function(e) { - return this.options[e]; - }, - exposed: function(e) { - if (e.exported) return !0; - if (e.undeclared) return !0; - if (!(e.global || e.scope.resolve() instanceof mt)) return !1; - var n = this.toplevel; - return !Ln(e.orig, function(e) { - return n[e instanceof Vi ? "funcs" : "vars"]; - }); - }, - compress: function(e) { - (e = e.resolve_defines(this)).hoist_exports(this), this.option("expression") && e.process_expression(!0); - for (var n = +this.options.passes || 1, t = 1 / 0, i = !1, r = { - ie: this.option("ie") - }, o = 0; o < n; o++) if (e.figure_out_scope(r), (0 < o || this.option("reduce_vars")) && e.reset_opt_flags(this), - e = e.transform(this), 1 < n) { - var a = 0; - if (e.walk(new mr(function() { - a++; - })), Gn.info("pass {pass}: last_count: {min_count}, count: {count}", { - pass: o, - min_count: t, - count: a - }), a < t) t = a, i = !1; else { - if (i) break; - i = !0; - } - } - return this.option("expression") && e.process_expression(!1), e; - }, - before: function(e, n, t) { - if (e._squeezed) return e; - var i = e instanceof vt; - i && (e.hoist_properties(this), e.hoist_declarations(this), e.process_boolean_returns(this)), - n(e, this), n(e, this); - var r = e.optimize(this); - return !i || r !== e || this.has_directive("use asm") || r.pinned() || (r.merge_variables(this), - r.drop_unused(this), n(r, this)), r === e && (r._squeezed = !0), r; - } - }), function(e) { - function l(e, n) { - var t; - if (!((i = n.get_property()) instanceof Gn)) { - if (e instanceof Di) { - n = e.elements; - if ("length" == i) return X(n.length, e); - "number" == typeof i && i in n && (t = n[i]); - } else if (e instanceof _t) { - if ("length" == i) return e.length_read = !0, X(e.argnames.length, e); - } else if (e instanceof Ci) for (var i = "" + i, r = e.properties, o = r.length; 0 <= --o; ) { - if (!zn(r[o])) return; - t || r[o].key !== i || (t = r[o].value); - } - return t instanceof Xi && t.fixed_value() || t; - } - } - function ce(e, n, t, i, r, o, a) { - var s = n.parent(r); - if (!(e.option("unsafe") && s instanceof _i && (c = i, f = s.property, c instanceof dr ? fe.Boolean[f] : c instanceof or ? fe.Number[f] : c instanceof rr ? fe.String[f] : "valueOf" != f && (c instanceof Di ? fe.Array[f] : c instanceof _t ? fe.Function[f] : c instanceof Ci ? fe.Object[f] : c instanceof sr && (fe.RegExp[f] && !c.value.global))))) { - var f, c = Sr(t, s); - if (c) return c; - if (s instanceof Di) return ce(e, n, s, s, r + 1); - if (s instanceof ki) return we[s.operator] ? ce(e, n, s, s, r + 1) : void 0; - if (s instanceof pi) return !o && s.expression === t && !s.is_expr_pure(e) && (!(i instanceof bt) || !(s instanceof di) && i.contains_this()); - if (s instanceof Ei) return s.condition === t ? void 0 : ce(e, n, s, s, r + 1); - if (s instanceof lt) return s.init === t; - if (s instanceof Fi) { - if (s.value !== t) return; - var u = n.parent(r + 1); - return ce(e, n, u, u, r + 2); - } - if (s instanceof mi) { - if (s.expression !== t) return; - u = l(i, s); - return (!o || a) && ce(e, n, s, u, r + 1); - } - return s instanceof hi && s.tail_node() === t ? ce(e, n, s, i, r + 1, o, a) : void 0; - } - } - function D(e) { - return e instanceof Ft || e instanceof _t; - } - function c(e) { - return e instanceof Ft || e instanceof Ct || e instanceof Dt; - } - function ue(e) { - return "arguments" == e.name && e.scope.uses_arguments; - } - function le(e) { - return e.orig[0] instanceof Ui || e.orig[1] instanceof Ui; - } - function y(e, n) { - do { - if (e === n) return; - if (n instanceof vt) return 1; - } while (n = n.parent_scope); - } - function pe(e, n, t) { - var i = e.definition(); - return (!e.in_arg || !le(i)) && Ln(i.orig, function(e) { - return e instanceof Yi || e instanceof Bi ? n && cn(n, e) : !(t && e instanceof Wi); - }); - } - function de(e, n, t, i) { - return i instanceof Si ? "=" == i.operator && i.right === t : i instanceof pi ? i.expression !== t || i instanceof di : i instanceof Rt ? i.value === t && n.resolve() !== e.scope.resolve() : i instanceof ai && i.value === t; - } - e(Gn, function(e, n) { - return e; - }), Gn.DEFMETHOD("equivalent_to", function(e) { - return this.TYPE == e.TYPE && this.print_to_string() == e.print_to_string(); - }), mt.DEFMETHOD("hoist_exports", function(e) { - if (e.option("hoist_exports")) { - for (var n = this.body, t = [], i = 0; i < n.length; i++) { - var r = n[i]; - r instanceof si ? (n[i] = r = r.body, r instanceof ti ? r.definitions.forEach(function(e) { - e.name.match_symbol(o, !0); - }) : o(r.name)) : r instanceof ci && (n.splice(i--, 1), [].push.apply(t, r.properties)); - } - t.length && n.push(ve(ci, this, { - properties: t - })); - } - function o(e) { - e instanceof Hi && ((e = ve(Ki, e, e)).alias = e.name, t.push(e)); - } - }), vt.DEFMETHOD("process_expression", function(i, r) { - var o = this, a = new _r(function(e) { - if (i && e instanceof et) return r ? r(e) : ve(Bt, e, { - value: e.body - }); - if (!i && e instanceof Bt) return r ? r(e) : ve(et, e, { - body: e.value || ve(wi, e, { - operator: "void", - expression: ve(or, e, { - value: 0 - }) - }) - }); - if (e instanceof it) { - if (e instanceof _t) { - if (e !== o) return e; - } else if ("awaits" === i && e instanceof Zt && e.bfinally) return e; - for (var n = e.body.length; 0 <= --n; ) { - var t = e.body[n]; - if (!N(t, !0)) { - e.body[n] = t.transform(a); - break; - } - } - } else e instanceof Gt ? (e.body = e.body.transform(a), e.alternative && (e.alternative = e.alternative.transform(a))) : e instanceof ht && (e.body = e.body.transform(a)); - return e; - }); - o.transform(a); - }); - var p = /^(0|[1-9][0-9]*)$/; - function o(e, n, t) { - t.assignments = 0, t.bool_fn = 0, t.cross_loop = !1, t.direct_access = !1, t.escaped = [], - t.fixed = !t.const_redefs && !t.scope.pinned() && !n.exposed(t) && !(t.init instanceof bt && t.init !== t.scope) && t.init, - t.reassigned = 0, t.recursive_refs = 0, t.references = [], t.should_replace = void 0, - t.single_use = void 0; - } - function a(e, n, t) { - t.variables.each(function(e) { - o(0, n, e); - }); - } - function d(t, i, r) { - r.fn_defs = [], r.variables.each(function(e) { - o(0, i, e); - var n = e.init; - n instanceof $t && (r.fn_defs.push(n), n.safe_ids = null), null === e.fixed ? (e.safe_ids = t.safe_ids, - g(t, e)) : e.fixed && (t.loop_ids[e.id] = t.in_loop, g(t, e)); - }), r.may_call_this = function() { - r.may_call_this = r.contains_this() ? jn : Fn; - }, r.uses_arguments && r.each_argname(function(e) { - e.definition().last_ref = !1; - }), i.option("ie") && r.variables.each(function(e) { - var n = e.orig[0].definition(); - n !== e && (n.fixed = !1); - }); - } - function s(e, n) { - var t = e.fn_scanning; - (e.fn_scanning = n).walk(e), e.fn_scanning = t; - } - function f(t, i) { - i.enclosed.forEach(function(e) { - var n; - i.variables.get(e.name) !== e && (w(t, e) || (e.single_use = !1, (n = "function" == typeof (n = e.fixed) ? n() : n) instanceof _t && Vn(n, "safe_ids") || (e.fixed = !1))); - }); - } - function h(e, n, t) { - var i, r; - !Vn(t, "safe_ids") || !1 !== (i = t.safe_ids) && (t.parent_scope.resolve().may_call_this === jn ? qn(t, e.fn_visited) && f(e, t) : i ? (r = qn(t, e.fn_visited), - i === e.safe_ids ? r || s(e, t) : r ? f(e, t) : t.safe_ids = !1) : e.fn_scanning && e.fn_scanning !== n.scope.resolve() ? t.safe_ids = !1 : (t.safe_ids = e.safe_ids, - s(e, t))); - } - function v(n, e) { - var t = e.fn_defs, i = e.may_call_this === jn ? t : t.filter(function(e) { - return !1 === e.safe_ids || (e.safe_ids = n.safe_ids, s(n, e), !1); - }); - _(n), i.forEach(function(e) { - e.safe_ids = n.safe_ids, s(n, e); - }), t.forEach(function(e) { - delete e.safe_ids; - }), delete e.fn_defs, delete e.may_call_this; - } - function m(e) { - e.safe_ids = Object.create(e.safe_ids); - } - function _(e) { - e.safe_ids = Object.getPrototypeOf(e.safe_ids); - } - function g(e, n) { - e.safe_ids[n.id] = {}; - } - function b(e, n) { - e.references.push(n), !1 !== e.last_ref && (e.last_ref = n); - } - function w(e, n) { - if ("m" == n.single_use) return !1; - var t = e.safe_ids[n.id]; - return t ? (Vn(e.safe_ids, n.id) || (t.read = !(!t.read || t.read === e.safe_ids) || e.safe_ids), - null == n.fixed ? !ue(n) && ((!n.global || "arguments" != n.name) && (e.loop_ids[n.id] = null, - n.fixed = ve(ur, n.orig[0]), !0)) : !t.assign || t.assign === e.safe_ids) : n.fixed instanceof $t; - } - function x(e, n, t) { - if (!t) { - if (le(n) && n.scope.uses_arguments && !e.has_directive("use strict")) return; - if (!Ln(n.orig, function(e) { - return !(e instanceof Yi); - })) return; - } - if (void 0 === n.fixed) return t || Ln(n.orig, function(e) { - return !(e instanceof Bi); - }); - if (!1 !== n.fixed) { - var i = e.safe_ids[n.id]; - if (n.safe_ids) return n.safe_ids[n.id] = !1, delete n.safe_ids, null === n.fixed || Vn(e.safe_ids, n.id) && !i.read; - if (!Vn(e.safe_ids, n.id)) { - if (!i) return; - if (i.read) { - t = e.find_parent(nt); - if (t instanceof Ft) return; - if (n.scope.resolve() !== t.resolve()) return; - } - i.assign = !(!i.assign || i.assign === e.safe_ids) || e.safe_ids; - } - if (null != n.fixed && i.read) { - if (i.read !== e.safe_ids) return; - if (e.loop_ids[n.id] !== e.in_loop) return; - } - return w(e, n) && Ln(n.orig, function(e) { - return !(e instanceof Wi); - }); - } - } - function k(e, n) { - var t = ve(Xi, e, e); - return t.fixed = n || ve(ur, e), t; - } - function E(e) { - if (!e) return !1; - if (e instanceof Si) { - var n = e.operator; - return "=" == n ? E(e.right) : !we[n.slice(0, -1)]; - } - return e instanceof hi ? E(e.tail_node()) : e.is_constant() || D(e) || e instanceof Qi; - } - function S(e, n, t, i, r, o, a) { - var s, f = e.parent(o); - if (!r || !r.is_constant()) { - if (de(n, t, i, f)) return n.escaped.push(f), !(1 < a) || r && r.is_constant_expression(t) || (a = 1), - (!n.escaped.depth || n.escaped.depth > a) && (n.escaped.depth = a), void (n.scope.resolve() !== t.resolve() && (n.escaped.cross_scope = !0)); - if (s = i, (c = f) instanceof Di || (c instanceof ki ? we[c.operator] : c instanceof Ei ? c.condition !== s : c instanceof hi ? c.tail_node() === s : c instanceof bi)) S(e, n, t, f, f, o + 1, a); else if (f instanceof Fi && f.value === i) { - var c = e.parent(o + 1); - S(e, n, t, c, c, o + 2, a); - } else if (f instanceof mi && f.expression === i && (S(e, n, t, f, r = l(r, f), o + 1, a + 1), - r)) return; - 0 < o || f instanceof pi && f.expression === i || f instanceof hi && f.tail_node() !== i || f instanceof et || f instanceof yi && !Er[f.operator] || (n.direct_access = !0); - } - } - function T(e) { - var n; - e instanceof gi && ((n = e.expression) instanceof Xi && (!ue(n = n.definition()) || ((e = (e = e.property).is_constant() ? e.value : e) instanceof Gn || p.test(e)) && (n.reassigned++, - (e instanceof Gn ? n.scope.argnames : [ n.scope.argnames[e] ]).forEach(function(e) { - e instanceof Ui && (e.definition().fixed = !1); - })))); - } - function A(o, t, e, a, n) { - var s = new mr(function(i) { - if (i instanceof li) return O(i), m(o), i.value.walk(o), _(o), (r = a) && (a = function() { - var e, n = r(); - return ye(n, t) || void 0 === (e = tn(t, n, !0)) ? J(i, [ n, i.value ]) : e instanceof Gn ? i : n; - }), i.name.walk(s), a = r, !0; - if (i instanceof $i) { - O(i); - var r = a; - return i.elements.forEach(function(e, n) { - return e instanceof lr ? O(e) : (r && (a = function() { - return ve(gi, e, { - expression: r(), - property: ve(or, e, { - value: n - }) - }); - }), void e.walk(s)); - }), i.rest && (r && (a = t.option("rests") && function() { - var e = r(); - return e instanceof Di ? ve(Di, i, { - elements: e.elements.slice(i.elements.length) - }) : i; - }), i.rest.walk(s)), a = r, !0; - } - if (i instanceof qi) { - O(i); - r = a; - return i.properties.forEach(function(t) { - O(t), t.key instanceof Gn && (m(o), t.key.walk(o), _(o)), r && (a = function() { - var e = t.key, n = gi; - return "string" == typeof e && (gr(e) ? n = _i : e = X(e, t)), ve(n, t, { - expression: r(), - property: e - }); - }), t.value.walk(s); - }), i.rest && (a = !1, i.rest.walk(s)), a = r, !0; - } - return n(i, a, function() { - for (var e = o.stack.length, n = 0, t = s.stack.length - 1; n < t; n++) o.stack.push(s.stack[n]); - i.walk(o), o.stack.length = e; - }), !0; - }); - e.walk(s); - } - function u(i, e, r) { - var o = this; - o.inlined = !1; - var a = i.parent(), n = wt(o) || xt(o), t = !1; - o.walk(new mr(function(e) { - return n ? t = !0 : e instanceof Bt ? n = !0 : e instanceof vt && e !== o || void 0; - })), t && m(i), d(i, r, o); - var s = !o.uses_arguments || i.has_directive("use strict"); - o.argnames.forEach(function(n, e) { - var t = a.args[e]; - A(i, r, n, function() { - var e = o.argnames.indexOf(n), e = e < 0 ? t : a.args[e]; - return (e = e instanceof hi && e.expressions.length < 2 ? e.expressions[0] : e) || ve(ur, a); - }, u); - }); - var f = o.rest; - f && A(i, r, f, r.option("rests") && function() { - return o.rest === f ? ve(Di, o, { - elements: a.args.slice(o.argnames.length) - }) : f; - }, u), kt(o, i); - var c = i.safe_ids; - return v(i, o), t || (i.safe_ids = c), !0; - function u(e, n) { - var t = e.definition(); - n && s && void 0 === t.fixed ? (g(i, t), i.loop_ids[t.id] = i.in_loop, t.fixed = n, - t.fixed.assigns = [ e ]) : t.fixed = !1; - } - } - function O(e) { - e._squeezed = !1, e._optimized = !1, delete e.fixed, e instanceof vt && delete e._var_names; - } - function n(t, i) { - return this.transform(new _r(function(e, n) { - return e instanceof li ? ((e = e.clone()).name = e.name.transform(this), e) : e instanceof Oi ? (n(e = e.clone(), this), - e) : e instanceof zi ? ((e = e.clone()).value = e.value.transform(this), e) : e.convert_symbol(t, i); - })); - } - function t(e, n) { - e = ve(e, this, this); - return n(e, this), e; - } - function i(n, t) { - var i = new mr(function(e) { - return e instanceof li ? (e.value.walk(t), e.name.walk(i), !0) : e instanceof zi ? (e.key instanceof Gn && e.key.walk(t), - e.value.walk(i), !0) : n(e); - }); - this.walk(i); - } - function r(e) { - return e(this); - } - function $(n, t) { - var i = !1, r = new mr(function(e) { - return !!i || (e instanceof li ? t ? (e.name.walk(r), !0) : i = !0 : e instanceof zi ? !t && e.key instanceof Gn ? i = !0 : (e.value.walk(r), - !0) : n(e) ? i = !0 : void 0); - }); - return this.walk(r), i; - } - function z(e) { - return e instanceof qt || e instanceof At; - } - function W(e) { - for (var n, t = 0; n = e.parent(t++); ) if (n.variables) return n; - } - (se = function(e, n) { - e.DEFMETHOD("reduce_vars", n); - })(Gn, Mn), se(Si, function(o, e, n) { - var a = this, s = a.left, f = a.right, t = s instanceof Xi && s.definition(), i = t || s instanceof Oi; - switch (a.operator) { - case "=": - return s.equivalent_to(f) && !s.has_side_effects(n) ? (f.walk(o), function e(n) { - { - var t; - n instanceof _i ? e(n.expression) : n instanceof gi ? (e(n.expression), n.property.walk(o)) : n instanceof Xi ? (b(t = n.definition(), n), - t.fixed && (n.fixed = t.fixed, n.fixed.assigns ? n.fixed.assigns.push(a) : n.fixed.assigns = [ a ])) : n.walk(o); - } - }(s), a.__drop = !0) : t && f instanceof bt ? (u(), f.parent_scope.resolve().fn_defs.push(f), - f.safe_ids = null, t.fixed && a.write_only || h(o, t, f), !0) : i ? (f.walk(o), - u(), !0) : void T(s); - - case "&&=": - case "||=": - case "??=": - return s.walk(o), m(o), i ? (f.walk(o), u()) : (T(s), f.walk(o)), _(o), !0; - - default: - if (!i) return void T(s); - t.assignments++; - var r = t.fixed; - if (ce(n, o, a, a, 0)) return void (t.fixed = !1); - var c = w(o, t); - return f.walk(o), c && !s.in_arg && x(o, t) ? (b(t, s), g(o, t), t.single_use && (t.single_use = !1), - s.fixed = t.fixed = function() { - return ve(ki, a, { - operator: a.operator.slice(0, -1), - left: k(s, r), - right: a.right - }); - }, s.fixed.assigns = r && r.assigns ? r.assigns.slice() : [], s.fixed.assigns.push(a)) : (s.walk(o), - t.fixed = !1), !0; - } - function u() { - var e = t && xn(o, t), r = ce(n, o, a, f, 0, E(f), e); - A(o, n, s, function() { - return a.right; - }, function(e, n, t) { - if (!(e instanceof Xi)) return T(e), void t(); - var i = e.definition(); - i.assignments++, n && !r && !e.in_arg && x(o, i) ? (b(i, e), g(o, i), (s instanceof Oi || 1 == i.orig.length && i.orig[0] instanceof Vi) && (i.single_use = !1), - o.loop_ids[i.id] = o.in_loop, S(o, i, e.scope, a, f, 0, 1), e.fixed = i.fixed = n, - e.fixed.assigns = [ a ]) : (t(), i.fixed = !1); - }); - } - }), se(ki, function(e) { - if (we[this.operator]) return this.left.walk(e), m(e), this.right.walk(e), _(e), - !0; - }), se(nt, function(e, n, t) { - a(0, t, this); - }), se(pi, function(n, e) { - var t = this, i = t.expression; - if (i instanceof bt) { - var r = _e(t); - return t.args.forEach(function(e) { - e.walk(n), e instanceof bi && (r = !1); - }), r && (i.reduce_vars = u), i.walk(n), r && delete i.reduce_vars, !0; - } - "Call" == t.TYPE && n.in_boolean_context() && (i instanceof Xi ? i.definition().bool_fn++ : i instanceof Si && "=" == i.operator && i.left instanceof Xi && i.left.definition().bool_fn++), - i.walk(n); - var o = t.optional; - o && m(n), t.args.forEach(function(e) { - e.walk(n); - }), o && _(n); - o = i instanceof Xi && i.fixed_value(); - return o instanceof _t ? h(n, i.definition(), o) : n.find_parent(vt).may_call_this(), - !0; - }), se(Ft, function(n, e, t) { - var i = this; - a(0, t, i), i.extends && i.extends.walk(n); - var r, o = i.properties.filter(function(e) { - return O(e), e.key instanceof Gn && e.key.walk(n), e.value; - }); - return i.name && (r = i.name.definition(), ((t = n.parent()) instanceof si || t instanceof fi) && (r.single_use = !1), - x(n, r, !0) ? (g(n, r), n.loop_ids[r.id] = n.in_loop, r.fixed = function() { - return i; - }, r.fixed.assigns = [ i ], an(r) || (r.single_use = !1)) : r.fixed = !1), o.forEach(function(e) { - !e.static || e instanceof It && e.value.contains_this() ? (m(n), e.value.walk(n), - _(n)) : e.value.walk(n); - }), !0; - }), se(Ei, function(e) { - return this.condition.walk(e), m(e), this.consequent.walk(e), _(e), m(e), this.alternative.walk(e), - _(e), !0; - }), se(li, function(e) { - return this.name.walk(e), m(e), this.value.walk(e), _(e), !0; - }), se(ft, function(e) { - var n = e.in_loop; - return e.in_loop = this, m(e), this.body.walk(e), en(this, e.parent()) && (_(e), - m(e)), this.condition.walk(e), _(e), e.in_loop = n, !0; - }), se(ut, function(e, n, t) { - var i = this; - a(0, t, i), i.init && i.init.walk(e); - t = e.in_loop; - return e.in_loop = i, m(e), i.condition && i.condition.walk(e), i.body.walk(e), - i.step && (en(i, e.parent()) && (_(e), m(e)), i.step.walk(e)), _(e), e.in_loop = t, - !0; - }), se(lt, function(e, n, t) { - var i = this; - a(0, t, i), i.object.walk(e); - var r = e.in_loop; - e.in_loop = i, m(e); - t = i.init; - return t instanceof ti ? t.definitions[0].name.mark_symbol(function(e) { - e instanceof Hi && ((e = e.definition()).assignments++, e.fixed = !1); - }, e) : t instanceof Oi || t instanceof Xi ? t.mark_symbol(function(e) { - var n; - e instanceof Xi && (b(n = e.definition(), e), n.assignments++, e.is_immutable() || (n.fixed = !1)); - }, e) : t.walk(e), i.body.walk(e), _(e), e.in_loop = r, !0; - }), se(Gt, function(e) { - return this.condition.walk(e), m(e), this.body.walk(e), _(e), this.alternative && (m(e), - this.alternative.walk(e), _(e)), !0; - }), se(ot, function(e) { - return m(e), this.body.walk(e), _(e), !0; - }), se(_t, function(e, n, t) { - var i = this; - return Vn(i, "safe_ids") && i.safe_ids !== e.safe_ids || Hn(e.fn_visited, i) && (i.inlined = !1, - m(e), d(e, t, i), n(), v(e, i), i.name && S(e, i.name.definition(), i, i.name, i, 0, 1)), - !0; - }), se($t, function(e, n, t) { - var i = this, r = i.name.definition(), o = e.parent(); - return (o instanceof si || o instanceof fi) && (r.single_use = !1), Vn(i, "safe_ids") && i.safe_ids !== e.safe_ids || Hn(e.fn_visited, i) && (i.inlined = !1, - m(e), d(e, t, i), n(), v(e, i)), !0; - }), se(gi, function(e) { - if (this.optional) return this.expression.walk(e), m(e), this.property.walk(e), - _(e), !0; - }), se(Jt, function(n, e, t) { - a(0, t, this), this.expression.walk(n); - var i = !0; - return this.body.forEach(function(e) { - e instanceof Kt || (e.expression.walk(n), i && (i = !1, m(n))); - }), i || _(n), tt(this, n), !0; - }), se(Xt, function(e) { - return m(e), tt(this, e), _(e), !0; - }), se(Ji, function() { - this.definition().fixed = !1; - }), se(Ri, function() { - this.definition().fixed = !1; - }), se(Xi, function(t, e, n) { - var i = this.definition(); - b(i, this), 1 == i.references.length && !i.fixed && i.orig[0] instanceof Vi && (t.loop_ids[i.id] = t.in_loop); - var r, o, a = xn(t, i); - a && a.enclosed.forEach(function(e) { - var n; - i !== e && (e.scope.resolve() === a || (n = e.fixed && e.fixed.assigns) && (n[n.length - 1] instanceof ai || (e = t.safe_ids[e.id]) && (e.assign = !0))); - }), !1 === i.fixed ? (o = i.redefined()) && y(i.scope, this.scope) && (o.single_use = !1) : void 0 !== i.fixed && w(t, i) ? i.fixed && (this.in_arg && i.orig[0] instanceof Wi && (this.fixed = i.scope), - r = this.fixed_value(), a ? i.recursive_refs++ : !r || (o = i, !n.option("unused") || o.scope.pinned() || !1 === o.single_use || o.references.length - o.recursive_refs != 1 || le(o) && o.scope.uses_arguments) ? i.single_use = !1 : (i.in_loop = t.loop_ids[i.id] !== t.in_loop, - i.single_use = D(r) && !r.pinned() && (!i.in_loop || t.parent() instanceof pi) || !i.in_loop && i.scope === this.scope.resolve() && r.is_constant_expression()), - ce(n, t, this, r, 0, E(r), a) && (i.single_use ? i.single_use = "m" : i.fixed = !1), - i.fixed && t.loop_ids[i.id] !== t.in_loop && (i.cross_loop = !0), S(t, i, this.scope, this, r, 0, 1)) : i.fixed = !1, - this.fixed || (this.fixed = i.fixed), r instanceof _t && !((n = t.parent()) instanceof pi && n.expression === this) && h(t, i, r); - }), se(tr, function(n, e) { - var t = this.tag; - if (t) { - if (t instanceof bt) return this.expressions.forEach(function(e) { - e.walk(n); - }), t.walk(n), !0; - t.walk(n), this.expressions.forEach(function(e) { - e.walk(n); - }); - var i = t instanceof Xi && t.fixed_value(); - return i instanceof _t ? h(n, t.definition(), i) : n.find_parent(vt).may_call_this(), - !0; - } - }), se(mt, function(e, n, t) { - return this.globals.each(function(e) { - o(0, t, e); - }), m(e), d(e, t, this), n(), v(e, this), !0; - }), se(Zt, function(e, n, t) { - var i = this; - return a(0, t, i), m(e), tt(i, e), _(e), i.bcatch && (m(e), i.bcatch.walk(e), _(e)), - i.bfinally && i.bfinally.walk(e), !0; - }), se(yi, function(e, n) { - var t = this; - if (wr[t.operator]) { - var i = t.expression; - if (i instanceof Xi) { - var r = i.definition(); - r.assignments++; - var o = r.fixed; - return w(e, r) && !i.in_arg && x(e, r) ? (b(r, i), g(e, r), r.single_use && (r.single_use = !1), - r.fixed = function() { - return ve(ki, t, { - operator: t.operator.slice(0, -1), - left: ve(wi, t, { - operator: "+", - expression: k(i, o) - }), - right: ve(or, t, { - value: 1 - }) - }); - }, r.fixed.assigns = o && o.assigns ? o.assigns.slice() : [], r.fixed.assigns.push(t), - t instanceof wi ? i.fixed = r.fixed : (i.fixed = function() { - return ve(wi, t, { - operator: "+", - expression: k(i, o) - }); - }, i.fixed.assigns = o && o.assigns)) : (i.walk(e), r.fixed = !1), !0; - } - T(i); - } - }), se(ai, function(i, e, n) { - var t, r = this, o = r.value; - return o instanceof bt && r.name instanceof Hi ? (a(), o.parent_scope.resolve().fn_defs.push(o), - o.safe_ids = null, (t = r.name.definition()).fixed || h(i, t, o)) : o ? (o.walk(i), - a()) : i.parent() instanceof ri && a(), !0; - function a() { - A(i, n, r.name, function() { - return r.value || ve(ur, r); - }, function(e, n) { - var t = e.definition(); - n && x(i, t, !0) ? (g(i, t), i.loop_ids[t.id] = i.in_loop, t.fixed = n, t.fixed.assigns = [ r ], - (e instanceof Yi && t.redefined() || !pe(e) && !an(t)) && (t.single_use = !1)) : t.fixed = !1; - }); - } - }), se(ct, function(e, n) { - var t = e.in_loop; - return e.in_loop = this, m(e), n(), _(e), e.in_loop = t, !0; - }), mt.DEFMETHOD("reset_opt_flags", function(t) { - var i = new mr(t.option("reduce_vars") ? function(e, n) { - return O(e), e.reduce_vars(i, n, t); - } : O); - i.fn_scanning = null, i.fn_visited = [], i.in_loop = null, i.loop_ids = Object.create(null), - i.safe_ids = Object.create(null), this.walk(i); - }), Ii.DEFMETHOD("fixed_value", function() { - var e = this.definition().fixed; - return e && ((e = this.fixed ? this.fixed : e) instanceof Gn ? e : e()); - }), Xi.DEFMETHOD("is_immutable", function() { - var e = this.redef || this.definition(); - return 1 == e.orig.length && e.orig[0] instanceof Wi; - }), Gn.DEFMETHOD("convert_symbol", Mn), li.DEFMETHOD("convert_symbol", n), Oi.DEFMETHOD("convert_symbol", n), - Hi.DEFMETHOD("convert_symbol", t), Xi.DEFMETHOD("convert_symbol", t), li.DEFMETHOD("mark_symbol", i), - Oi.DEFMETHOD("mark_symbol", i), Hi.DEFMETHOD("mark_symbol", r), Xi.DEFMETHOD("mark_symbol", r), - Gn.DEFMETHOD("match_symbol", function(e) { - return e(this); - }), li.DEFMETHOD("match_symbol", $), Oi.DEFMETHOD("match_symbol", $); - var G = Bn("Infinity NaN undefined"); - function he(e, n) { - if (e instanceof Qi) return !0; - if (e instanceof mi) { - if ("__proto__" === e.property) return !0; - if ((e = e.expression) instanceof Xi) { - if (e.is_immutable()) return !1; - e = e.fixed_value(); - } - return e ? !!e.tail_node().is_constant() || he(e, n) : !0; - } - if (e instanceof Xi) { - if (e.is_immutable()) return !0; - e = e.definition(); - return n.exposed(e) && G[e.name]; - } - return !1; - } - function ve(e, n, t) { - return t = t || {}, n && (t.start || (t.start = n.start), t.end || (t.end = n.end)), - new e(t); - } - function J(e, n) { - return 1 == n.length ? n[0] : ve(hi, e, { - expressions: n.reduce(q, []) - }); - } - function X(e, n) { - switch (typeof e) { - case "string": - return ve(rr, n, { - value: e - }); - - case "number": - return isNaN(e) ? ve(cr, n) : isFinite(e) ? 1 / e < 0 ? ve(wi, n, { - operator: "-", - expression: ve(or, n, { - value: -e - }) - }) : ve(or, n, { - value: e - }) : e < 0 ? ve(wi, n, { - operator: "-", - expression: ve(pr, n) - }) : ve(pr, n); - - case "boolean": - return ve(e ? vr : hr, n); - - case "undefined": - return ve(ur, n); - - default: - if (null === e) return ve(fr, n, { - value: null - }); - if (e instanceof RegExp) return ve(sr, n, { - value: e - }); - throw new Error(Yn("Can't handle constant of type: {type}", { - type: typeof e - })); - } - } - function K(e, n) { - return n instanceof mi || ge(n) && "eval" == n.name; - } - function me(e, n, t, i) { - var r = !1; - return "Call" == n.TYPE ? r = n.expression === t && K(0, i) : n instanceof tr ? r = n.tag === t && K(0, i) : n instanceof wi && (r = "delete" == n.operator || "typeof" == n.operator && ge(i)), - r ? J(t, [ ve(or, t, { - value: 0 - }), i ]) : i; - } - function q(e, n) { - return n instanceof hi ? e.push.apply(e, n.expressions) : e.push(n), e; - } - function C(e) { - return e instanceof ii || e instanceof jt || e instanceof ri; - } - function M(e) { - if (e instanceof $t) { - var n = e.name.definition(), t = e.name.scope; - return n.scope === t || Ln(n.references, function(e) { - var n = e.scope; - do { - if (n === t) return 1; - } while (n = n.parent_scope); - }); - } - return !C(e); - } - function F(e) { - if (null === e) return []; - if (e instanceof rt) return Ln(e.body, M) ? e.body : [ e ]; - if (e instanceof Qn) return []; - if (Zn(e)) return [ e ]; - throw new Error("Can't convert thing to statement array"); - } - function Q(e) { - return null === e || (e instanceof Qn || e instanceof rt && 0 == e.body.length); - } - function j(e) { - return Ln(e.body, function(e) { - return Q(e) || e instanceof Ct || e instanceof oi && ee(e); - }); - } - function P(e) { - return e instanceof at && e.body instanceof rt ? e.body : e; - } - function Z(e) { - if ("Call" != e.TYPE) return !1; - for (;(e = e.expression) instanceof mi; ); - return e instanceof bt ? !yt(e) : Z(e); - } - function _e(e) { - var n = e.expression; - if (n.name) return !1; - if (!(e instanceof di)) return !0; - var t = !1; - return n.walk(new mr(function(e) { - return !!t || (e instanceof nr ? t = !0 : e instanceof vt && e !== n || void 0); - })), !t; - } - function ge(e) { - return e instanceof Xi && e.definition().undeclared; - } - var be = Bn("Array Boolean clearInterval clearTimeout console Date decodeURI decodeURIComponent encodeURI encodeURIComponent Error escape eval EvalError Function isFinite isNaN JSON Map Math Number parseFloat parseInt RangeError ReferenceError RegExp Object Set setInterval setTimeout String SyntaxError TypeError unescape URIError WeakMap WeakSet"); - function ee(e) { - return Ln(e.definitions, function(e) { - return !e.value; - }); - } - function N(e, n) { - return e instanceof jt ? n && !e.extends && Ln(e.properties, function(e) { - return !(e.key instanceof Gn) && !(e instanceof It && e.static && e.value); - }) : e instanceof ti ? (n || e instanceof oi) && ee(e) : e instanceof si || e instanceof fi ? N(e.body, n) : e instanceof $t; - } - function I(e, n) { - var t = e.lastIndexOf(n); - if (t < 0) return !1; - for (;++t < e.length; ) if (!N(e[t], !0)) return !1; - return !0; - } - function H(e, c) { - var oe, ae, se; - !function() { - var e = c.self(), n = 0; - do { - if (e instanceof ei) c.parent(n).bfinally && ((ae = ae || {}).bfinally = !0), n++; else if (e instanceof ni) n++; else if (e instanceof at) oe = !0; else { - if (e instanceof vt) { - se = e; - break; - } - e instanceof Zt && (ae = ae || {}, e.bcatch && (ae.bcatch = !0), e.bfinally && (ae.bfinally = !0)); - } - } while (e = c.parent(n++)); - }(); - for (var fe, n = 10; fe = !1, function e(n) { - var t = []; - for (var i = 0; i < n.length; ) { - var r = n[i]; - if (r instanceof rt && Ln(r.body, M)) fe = !0, e(r.body), [].splice.apply(n, [ i, 1 ].concat(r.body)), - i += r.body.length; else { - if (r instanceof Kn) { - if (qn(r.value, t)) { - fe = !0, n.splice(i, 1); - continue; - } - t.push(r.value); - } - r instanceof Qn ? (fe = !0, n.splice(i, 1)) : i++; - } - } - }(e), c.option("dead_code") && function(n, t) { - for (var e, i = t.self(), r = 0, o = 0, a = n.length; r < a; r++) { - var s, f = n[r]; - if (!(f instanceof Ut) || P(s = t.loopcontrol_target(f)) !== i || f instanceof Vt && s instanceof at ? n[o++] = f : f.label && Rn(f.label.thedef.references, f), - Me(f)) { - e = n.slice(r + 1); - break; - } - } - n.length = o, fe = o != a, e && e.forEach(function(e) { - Y(t, e, n); - }); - }(e, c), c.option("if_return") && function(i, r) { - for (var o = r.self(), e = r.parent(), t = v(function(e) { - return e instanceof _t; - }), n = t && e && "Call" == e.TYPE, a = function(e) { - for (var n = 0, t = e.length; 0 <= --t; ) { - var i = e[t]; - if (i instanceof Gt && i.body instanceof Bt && 1 < ++n) return !0; - } - return !1; - }(i), s = i.length; 0 <= --s; ) { - var f = i[s], c = w(s), u = i[c]; - if (t && !u && f instanceof Bt) { - if (!f.value) { - fe = !0, i.splice(s, 1); - continue; - } - var l = f.value.tail_node(); - if (l instanceof wi && "void" == l.operator) { - fe = !0, l === f.value ? d = l.expression : (d = f.value.clone()).expressions[d.length - 1] = l.expression, - i[s] = ve(et, f, { - body: d - }); - continue; - } - } - if (f instanceof Gt) { - var p = Me(f.body); - if (g(p)) { - p.label && Rn(p.label.thedef.references, p), fe = !0, (f = f.clone()).condition = f.condition.negate(r); - var d = y(f.body, p); - f.body = ve(rt, f, { - body: F(f.alternative).concat(b()) - }), f.alternative = ve(rt, f, { - body: d - }), i[s] = f, i[s] = f.transform(r); - continue; - } - if (p && !f.alternative && f.body instanceof rt && u instanceof Yt) { - var h = f.condition.negate(r); - if (h.print_to_string().length <= f.condition.print_to_string().length) { - fe = !0, (f = f.clone()).condition = h, i[c] = f.body, f.body = u, i[s] = f, i[s] = f.transform(r); - continue; - } - } - var h = Me(f.alternative); - if (g(h)) { - h.label && Rn(h.label.thedef.references, h), fe = !0, (f = f.clone()).body = ve(rt, f.body, { - body: F(f.body).concat(b()) - }); - d = y(f.alternative, h); - f.alternative = ve(rt, f.alternative, { - body: d - }), i[s] = f, i[s] = f.transform(r); - continue; - } - r.option("typeofs") && (p && !h && nn(f.condition, null, ve(rt, o, { - body: i.slice(s + 1) - })), !p && h && nn(f.condition, ve(rt, o, { - body: i.slice(s + 1) - }))); - } - f instanceof Gt && f.body instanceof Bt && (p = f.body.value, h = f.body.in_bool || u instanceof Bt && u.in_bool, - p || f.alternative || !(t && !u || u instanceof Bt && !u.value) ? !f.alternative && u instanceof Bt ? (fe = !0, - (f = f.clone()).alternative = u, i.splice(s, 1, f.transform(r)), i.splice(c, 1)) : f.alternative || u || !t || !(h || p && a) ? (p = i[function(e) { - for (var n = e; 0 <= --n && N(i[n]); ); - return n; - }(s)], r.option("sequences") && t && !f.alternative && (!p && n || p instanceof Gt && p.body instanceof Bt) && w(c) == i.length && u instanceof et && (fe = !0, - (f = f.clone()).alternative = ve(rt, u, { - body: [ u, ve(Bt, u, { - value: null - }) ] - }), i.splice(s, 1, f.transform(r)), i.splice(c, 1))) : (fe = !0, (f = f.clone()).alternative = ve(Bt, f, { - value: null - }), i.splice(s, 1, f.transform(r))) : (fe = !0, i[s] = ve(et, f.condition, { - body: f.condition - }))); - } - function v(e) { - var n, t = o, i = 0; - do { - do { - if (e(t)) return !0; - } while ((t = r.parent(i++)) instanceof Gt && (n = t)); - } while ((t instanceof rt || t instanceof vt) && I(t.body, n)); - } - function m(n) { - return v(function(e) { - return e === n; - }); - } - function _(e) { - if (e instanceof Bt) return t && (!(n = e.value) || n instanceof wi && "void" == n.operator); - if (e instanceof Ut) { - var n = r.loopcontrol_target(e); - return e instanceof Wt ? m(P(n)) : !(n instanceof at) && m(n); - } - } - function g(e) { - if (_(e)) { - for (var n = i.length; --n > s; ) { - var t = i[n]; - if (t instanceof jt) { - if (t.name.definition().preinit) return; - } else if ((t instanceof ii || t instanceof ri) && !Ln(t.definitions, function(e) { - return !e.name.match_symbol(function(e) { - return e instanceof Hi && e.definition().preinit; - }); - })) return; - } - return 1; - } - } - function b() { - var n = [], t = !1, e = i.splice(s + 1).filter(function(e) { - return e instanceof $t ? (n.push(e), !1) : (C(e) && (t = !0), !0); - }); - return [].push.apply(t ? e : i, n), e; - } - function y(e, n) { - for (var t, e = F(e), i = e; (t = i[i.length - 1]) !== n; ) i = t.body; - return i.pop(), n.value && i.push(ve(et, n.value, { - body: n.value.expression - })), e; - } - function w(e) { - for (var n = e + 1; n < i.length && N(i[n]); n++); - return n; - } - }(e, c), 0 < c.sequences_limit && (function(n, e) { - if (!(n.length < 2)) { - for (var t = [], i = 0, r = 0, o = n.length; r < o; r++) { - var a, s = n[r]; - s instanceof et ? (t.length >= e.sequences_limit && f(), a = s.body, (a = 0 < t.length ? a.drop_side_effect_free(e) : a) && q(t, a)) : (N(s) || f(), - n[i++] = s); - } - f(), (n.length = i) != o && (fe = !0); - } - function f() { - var e; - t.length && (e = J(t[0], t), n[i++] = ve(et, e, { - body: e - }), t = []); - } - }(e, c), function(e, n) { - function t(e) { - r--, fe = !0; - var n = i.body; - return J(n, [ n, e ]); - } - for (var i, r = 0, o = 0; o < e.length; o++) { - var a, s = e[o]; - if (i && (s instanceof Rt ? !s.value && z(se) || (s.value = t(s.value || ve(ur, s)).optimize(n)) : s instanceof ut ? s.init instanceof ti || (a = !1, - i.body.walk(new mr(function(e) { - return !!(a || e instanceof vt) || (e instanceof ki && "in" == e.operator ? a = !0 : void 0); - })), a || (s.init ? s.init = t(s.init) : (s.init = i.body, r--, fe = !0))) : s instanceof pt ? C(s.init) || (s.object = t(s.object)) : s instanceof Gt ? s.condition = t(s.condition) : (s instanceof Jt || s instanceof ht) && (s.expression = t(s.expression))), - n.option("conditionals") && s instanceof Gt) { - var f = [], c = p(s.body, f), u = p(s.alternative, f); - if (!1 !== c && !1 !== u && 0 < f.length) { - var l = f.length; - f.push(ve(Gt, s, { - condition: s.condition, - body: c || ve(Qn, s.body), - alternative: u - })), f.unshift(r, 1), [].splice.apply(e, f), o += l, r += l + 1, fe = !(i = null); - continue; - } - } - e[r++] = s, i = s instanceof et ? s : null; - } - e.length = r; - }(e, c)), c.option("join_vars") && function(e) { - for (var r, n = 0, t = -1; n < e.length; n++) { - var i, o, a = e[n], s = e[t]; - if (a instanceof ti) s && s.TYPE == a.TYPE ? (s.definitions = s.definitions.concat(a.definitions), - fe = !0) : r && r.TYPE == a.TYPE && ee(a) ? (r.definitions = r.definitions.concat(a.definitions), - fe = !0) : a instanceof oi ? ((o = d(s, a)) ? (o.length && (s.body = J(s, o), t++), - fe = !0) : t++, e[t] = r = a) : e[++t] = a; else { - if (a instanceof Rt) a.value = f(a.value); else if (a instanceof ut) if (o = l(s, a.init)) fe = !0, - a.init = o.length ? J(a.init, o) : null; else { - if (s instanceof oi && (!a.init || a.init.TYPE == s.TYPE)) { - a.init && (s.definitions = s.definitions.concat(a.init.definitions)), r = a.init = s, - e[t] = c(a), fe = !0; - continue; - } - if (r && a.init && r.TYPE == a.init.TYPE && ee(a.init)) r.definitions = r.definitions.concat(a.init.definitions), - a.init = null, fe = !0; else if (a.init instanceof oi && (r = a.init, o = d(s, a.init))) { - if (fe = !0, 0 == o.length) { - e[t] = c(a); - continue; - } - s.body = J(s, o); - } - } else if (a instanceof lt) r && r.TYPE == a.init.TYPE && (i = r.definitions.slice(), - a.init = a.init.definitions[0].name.convert_symbol(Xi, function(e, n) { - i.push(ve(ai, n, { - name: n, - value: null - })), n.definition().references.push(e); - }), r.definitions = i, fe = !0), a.object = f(a.object); else if (a instanceof Gt) a.condition = f(a.condition); else if (a instanceof et) { - if (o = l(s, a.body)) { - if (fe = !0, !o.length) continue; - a.body = J(a.body, o); - } - } else (a instanceof Jt || a instanceof ht) && (a.expression = f(a.expression)); - e[++t] = r ? c(a) : a; - } - } - function f(e) { - var n = l(s, e, 1); - if (!n) return e; - fe = !0; - var t = e.tail_node(); - return n[n.length - 1] !== t && n.push(t.left), J(e, n); - } - function c(e) { - return e.transform(new _r(function(e, n, t) { - if (e instanceof ti) { - if (r === e) return e; - if (r.TYPE != e.TYPE) return e; - var i = this.parent(); - return i instanceof lt && i.init === e ? e : ee(e) ? (r.definitions = r.definitions.concat(e.definitions), - fe = !0, i instanceof ut && i.init === e ? null : t ? In.skip : ve(Qn, e)) : e; - } - return !(e instanceof si) && !(e instanceof vt) && Zn(e) ? void 0 : e; - })); - } - e.length = t + 1; - }(e), c.option("collapse_vars") && function(o, p) { - if (se.pinned()) return; - var d, i, a, s = Object.create(null), h = [], f = Object.create(null), c = o.length, u = new _r(function(e, n) { - if (P) return e; - if (!j) return e !== l[v] ? e : ++v < l.length ? R(e, u) : (j = !0, (y = (b ? X : W)(e, 0)) === e && (P = !0), - e); - var t = u.parent(); - if (function(e, n) { - if (e === C) return !0; - if (n instanceof ut && e !== n.init) return !0; - if (e instanceof Si) return "=" != e.operator && x.equivalent_to(e.left); - if (e instanceof pi) return x instanceof mi && (!!x.equivalent_to(e.expression) && !(C instanceof bt && !C.contains_this())); - if (e instanceof Ft) return !p.has_directive("use strict"); - if (e instanceof Xn) return !0; - if (e instanceof Ct) return T && x.name === e.name.name; - if (e instanceof zi) return e.key instanceof Gn; - if (e instanceof st) return !0; - if (e instanceof Ut) return !0; - if (e instanceof Xi) { - if (e.is_declared(p)) { - if (e.fixed_value()) return !1; - if (pe(e)) return !(n instanceof mi && n.expression === e) && ue(e.definition()); - } else if (B(e, n)) return !1; - return F ? S = !1 : !0; - } - return e instanceof Zt || e instanceof ht; - }(e, t)) return P = !0, e; - if (!w && L(e, t) && (w = t), e.single_use && t instanceof ai && t.value === e) return e; - if (!(e instanceof Hi) && (E && x.equivalent_to(e) || S && (i = S(e, this)))) { - if (!I || w && (i || !q || !F)) return i || b || (P = !0), e; - if (Sr(e, t)) return b && !i && (g = !0), e; - if (b) return w && 0 == _ && (_ = a - N), i || N++, e; - if (N++, fe = P = !0, Gn.info("Collapsing {node} [{file}:{line},{col}]", { - node: e, - file: e.start.file, - line: e.start.line, - col: e.start.col - }), "Binary" == m.TYPE) return ve(Si, m, { - operator: "=", - left: m.right.left, - right: ve(Ei, m, { - condition: "&&" == m.operator ? m.left : m.left.negate(p), - consequent: m.right.right, - alternative: e - }) - }); - if (m instanceof xi) return x instanceof Xi && (x.definition().fixed = !1), ve(wi, m, m); - if (m instanceof ai) { - var i = m.name.definition(); - return i.references.length - i.replaced != 1 || p.exposed(i) ? ve(Si, m, { - operator: "=", - left: ve(Xi, m.name, m.name), - right: m.value - }) : (i.replaced++, me(0, t, e, m.value)); - } - for (var r = m; r.write_only && (r.write_only = !1, r instanceof Si); ) r = r.right; - return m; - } - if ((U(e, t) || A(e)) && (y = e) instanceof vt && (P = !0), e instanceof gt) { - var o = I; - return I = !1, n(e, u), I = o, Y(e); - } - if (e instanceof Oi) { - o = I; - return I = !1, n(e, u), I = o, Y(e); - } - if (e instanceof li) { - e.name = e.name.transform(u); - o = I; - return I = !1, e.value = e.value.transform(u), I = o, Y(e); - } - if (!(e instanceof nt) || e instanceof vt || e.variables && e.variables.all(function(e) { - return !z.has(e.name); - })) return R(e, u); - o = I; - return I = !1, R(e, u) || n(e, u), I = o, Y(e); - }, Y), r = new _r(function(e) { - if (P) return e; - if (!j) { - if (e !== l[v]) return e; - switch (v++, l.length - v) { - case 0: - if (j = !0, g) return e; - if (e !== m) return e; - if (e instanceof ai) return e; - H.replaced++; - var n = r.parent(); - return n instanceof hi && n.tail_node() !== e ? (b.replaced++, In.skip) : C; - - case 1: - if (!g && e.body === m) return j = !0, H.replaced++, b.replaced++, null; - - default: - return R(e, r); - } - } - if (e instanceof Xi && e.definition() === H) { - if (Sr(e, r.parent())) return e; - --N || (P = !0); - var t = C.clone(); - return (t.scope = e.scope, t.reference(), N == _) ? (P = !0, ve(Si, m, { - operator: "=", - left: e, - right: t - })) : (H.replaced++, t); - } - return e instanceof Kt || e instanceof vt ? e : void 0; - }, te); - for (;0 <= --c; ) { - 0 == c && p.option("unused") && function() { - var e, n, r = p.self(); - if (r instanceof bt && !xt(r) && !r.uses_arguments && !r.pinned() && (e = p.parent()) instanceof pi && e.expression === r && _e(e) && Ln(e.args, function(e) { - return !(e instanceof bi); - })) { - var o = p.has_directive("use strict"); - o && !qn(o, r.body) && (o = !1); - for (var a = wt(r) ? function(e) { - return e instanceof Ii && "await" == e.name; - } : function(e) { - return e instanceof Ti && !t.find_parent(vt); - }, s = null, t = new mr(function(e, n) { - if (!l) return !0; - if (a(e) || e instanceof Ai) return !(l = null); - if (e instanceof Qi && (o || !s)) return !(l = null); - if (e instanceof Xi && r.variables.has(e.name)) { - var t = e.definition().scope; - if (t !== se) for (;t = t.parent_scope; ) if (t === se) return !0; - l = null; - } - if (e instanceof vt && !yt(e)) { - var i = s; - return s = e, n(), s = i, !0; - } - }), i = (d = e.args.slice()).length, f = Object.create(null), c = r.argnames.length; 0 <= --c; ) { - var u = r.argnames[c], l = d[c]; - if (u instanceof li && (n = u.value, u = u.name, d[i + c] = n), u instanceof Oi) { - if (!function n(e, t) { - if (!t) return !(e instanceof Ii); - if (e instanceof li) return t.has_side_effects(p) || e.value.has_side_effects(p) || n(e.name, ye(t) && e.value); - if (e instanceof Oi) return !(!e.rest || !n(e.rest)) || (e instanceof $i ? !(t instanceof Di || t.is_string(p)) || !Ln(e.elements, function(e) { - return !n(e); - }) : e instanceof qi ? !t.is_defined(p) || !Ln(e.properties, function(e) { - return !(e instanceof Gn && e.has_side_effects(p)) && !n(e.value); - }) : void 0); - }(u, l)) continue; - h.length = 0; - break; - } - u.name in f || (f[u.name] = !0, (l = n ? !l || ye(l) ? n : null : l) || n ? l instanceof _t && l.pinned() ? l = null : l && l.walk(t) : l = ve(ur, u).transform(p), - l && ((u = ve(ai, u, { - name: u, - value: l - })).name_index = c, u.arg_index = n ? i + c : c, h.unshift([ u ]))); - } - } - }(); - var l = []; - for (V(o[c]); 0 < h.length; ) { - l = h.pop(); - var v = 0, m = l[l.length - 1], _ = -1, g = !1, b = null, y = null, w = null, x = function(n) { - if (n instanceof Si) { - var t = n.left; - if ("=" != n.operator) return t; - if (!(t instanceof Xi)) return t; - var e = t.definition(); - return se.uses_arguments && le(e) ? t : (p.exposed(e) || (a = Z(e), e.fixed && t.fixed && ((i = e.references.filter(function(e) { - return e.fixed === t.fixed; - }).length - 1) < a && (a = i, _ = 0)), Q(n.right)), t); - } - if (n instanceof ki) return n.right.left; - if (n instanceof yi) return n.expression; - if (n instanceof ai) { - e = (t = n.name).definition(); - if (!e.const_redefs && (qn(t, e.orig) && (!se.uses_arguments || !le(e)))) { - var i = e.orig.length - e.eliminated - (f[e.name] || 0); - return a = Z(e), e.fixed && (a = Math.min(a, e.references.filter(function(e) { - if (!e.fixed) return !0; - if (!e.fixed.assigns) return !0; - e = e.fixed.assigns[0]; - return e === t || ee(e) === n.value; - }).length)), 1 < i && !(t instanceof Ui) ? (Q(n.value), ve(Xi, t, t)) : Q(n.value) || 1 == a && !p.exposed(e) ? ve(Xi, t, t) : void 0; - } - } else; - }(m), k = x && x.has_side_effects(p), E = x && !k && !he(x, p), S = function(n) { - if (!(n instanceof Si && n.right.single_use)) { - for (var t, i = Object.create(null), e = new mr(function(e) { - e instanceof Xi && (i[e.definition().id] = !0); - }); n instanceof Si && "=" == n.operator; ) n.left.walk(e), n = n.right; - if (n instanceof Qi) return o; - if (n instanceof Xi) { - var r = n.evaluate(p); - return r === n ? o : ne(r, o); - } - if (n.is_truthy()) return ne(!0, Fn); - if (n.is_constant()) { - r = n.evaluate(p); - if (!(r instanceof Gn)) return ne(r, o); - } - return x instanceof Xi ? !!function e(n) { - if (n instanceof Di) return !1; - if (n instanceof ki && we[n.operator]) return e(n.left) && e(n.right); - if (n instanceof pi) return !1; - if (n instanceof Ei) return e(n.consequent) && e(n.alternative); - if (n instanceof Ci) return !1; - return !n.has_side_effects(p); - }(n) && (n.walk(new mr(function(e) { - if (t) return !0; - e instanceof Xi && i[e.definition().id] && (t = !0); - })), !t && o) : !1; - } - function o(e) { - return n.equivalent_to(e); - } - }(m); - if (E || S) { - var T = m.name instanceof Ui, A = Fn; - if (m.may_throw(p)) { - if (T && wt(se)) continue; - A = ae ? function(e) { - return e.has_side_effects(p); - } : t; - } - var D = !1, O = !1, $ = !0, z = function(i) { - var r = new Un(); - i instanceof ai && (i.name.definition().fixed || ($ = !1), r.add(i.name.name, x)); - var o = se.uses_arguments && !p.has_directive("use strict"), a = se instanceof mt, s = new mr(function(e) { - var n, t; - e instanceof Xi ? (t = e.fixed_value()) || ((n = (t = e).definition()).undeclared || !n.assignments && n.escaped && !n.escaped.cross_scope || !de(n, e.scope, e, s.parent()) && kn(n) || ($ = !1)) : e instanceof Qi && (t = e), - t && r.add(e.name, ce(p, s, e, t, 0)), o && e instanceof gi && (se.each_argname(function(e) { - p.option("reduce_vars") && !e.definition().assignments || (e.definition().fixed || ($ = !1), - r.add(e.name, !0)); - }), o = !1), a && ("Call" == e.TYPE ? O || ((t = e.expression) instanceof mi || t instanceof bt && !t.contains_this() || (O = !0)) : e instanceof mi && function e(n) { - if (n instanceof Xi && !(n = n.fixed_value())) return !0; - if (n instanceof Si) return "=" == n.operator && e(n.right); - return n instanceof mi || n instanceof Qi; - }(e.expression) && (e !== x || i instanceof yi ? D = !0 : O = !0)); - }); - return i.walk(s), r; - }(m), q = function(e) { - var n = vi(e); - return n instanceof Xi && n.definition().scope.resolve() === se && !(oe && (z.has(n.name) && z.get(n.name)[0] !== e || m instanceof yi || m instanceof Si && "=" != m.operator)); - }(x), C = ee(m); - k = k || !(m instanceof yi) && C.has_side_effects(p); - var M = ae || !q ? function(e) { - return e instanceof Oi; - } : Fn, F = function(e) { - if (e instanceof yi) return !1; - if (k) return !1; - if (b) return !0; - if (!(x instanceof Xi)) return !1; - var n; - if (e instanceof ai) n = 1; else { - if ("=" != e.operator) return !1; - n = 2; - } - e = x.definition(); - return e.references.length - e.replaced == n; - }(m), j = T, P = !1, N = 0, I = !d || !j; - if (!I) { - for (var e = m.arg_index + 1; !P && e < d.length; e++) d[e] && d[e].transform(u); - I = !0; - } - for (var n = c; !P && n < o.length; n++) o[n].transform(u); - if (b) { - if (!N || N + g < a) { - h.push(l), i = !0; - continue; - } - N == _ && (g = !0); - var H = x.definition(); - P = !1, v = 0, j = T; - for (n = c; !P && n < o.length; n++) o[n].transform(r) || o.splice(n--, 1); - N = m instanceof ai && m === l[l.length - 1] && H.references.length == H.replaced && !p.exposed(H), - b.last_ref = !1, b.single_use = !1, fe = !0; - } - N && !function(e) { - var n = e.name_index; - if (0 <= n) { - var t = se.argnames[n]; - return t instanceof li ? (t.value = ve(or, t, { - value: 0 - }), t.name.definition().fixed = !1) : (e = p.parent().args)[n] && (e[n] = ve(or, e[n], { - value: 0 - }), t.definition().fixed = !1), !0; - } - var i = l.length - 1; - l[i - 1].body === l[i] && i--; - var r = new _r(function(e, n, t) { - return j || e !== l[v] ? e : ++v <= i ? R(e, r) : (j = !0, e instanceof ai ? (f[e.name.name] = (f[e.name.name] || 0) + 1, - b && b.replaced++, (e = e.clone()).value = null, e) : t ? In.skip : null); - }, te); - return j = P = !1, v = 0, o[c].transform(r); - }(m) && o.splice(c, 1); - } - } - } - function Y(e) { - return P || (y === e && (P = !0), w === e && (w = null)), e; - } - function R(e, n) { - if (!(e instanceof nt)) return e instanceof Nt && !e.static ? (e.key instanceof Gn && (e.key = e.key.transform(n)), - e) : void 0; - if (e instanceof vt) return e; - if (e instanceof lt) return e.object = e.object.transform(n), P = !0, e; - if (e instanceof Jt) { - e.expression = e.expression.transform(n); - for (var t = 0; !P && t < e.body.length; t++) { - var i = e.body[t]; - if (i instanceof Qt) { - if (!j) { - if (i !== l[v]) continue; - v++; - } - if (i.expression = i.expression.transform(n), !F) break; - S = !1; - } - } - return P = !0, e; - } - } - function B(e, n) { - return n instanceof Si ? "=" == n.operator && n.left === e : n instanceof li ? n.name === e : n instanceof $i || n instanceof zi && n.value === e; - } - function L(e, n) { - return n instanceof Si ? n.left !== e && we[n.operator.slice(0, -1)] : n instanceof ki ? n.left !== e && we[n.operator] : n instanceof pi ? n.optional && n.expression !== e : n instanceof Qt ? n.expression !== e : n instanceof Ei || n instanceof Gt ? n.condition !== e : n instanceof gi && (n.optional && n.expression !== e); - } - function U(e, n) { - if (e instanceof Ti) return 1; - if ("Binary" == e.TYPE) return "in" == e.operator && !bn(e.right); - if (e instanceof pi) { - var t = e.expression; - if (t instanceof Xi && (f = t.definition(), t = t.fixed_value()), !(t instanceof _t)) return !e.is_expr_pure(p); - if (f && xn(p, f, t)) return 1; - if (t.collapse_scanning) return; - t.collapse_scanning = !0; - var i = I; - I = !1; - var r = y, o = w; - if (Ln(t.argnames, function(e) { - if (e instanceof li) { - if (e.value.transform(u), P) return; - e = e.name; - } - return !(e instanceof Oi); - })) if (yt(t) && t.value) t.value.transform(u); else for (var a = 0; !P && a < t.body.length; a++) { - var s = t.body[a]; - if (s instanceof Bt) { - s.value && s.value.transform(u); - break; - } - s.transform(u); - } else P = !0; - return (w = o, y = r, I = i, delete t.collapse_scanning, P) ? (P = !1, 1) : void 0; - } - if (e instanceof Rt) { - if (ae) { - if (ae.bfinally) return 1; - if (ae.bcatch && e instanceof Lt) return 1; - } - return k || x instanceof mi || re(x); - } - if (e instanceof Dt) return p.option("ie") && e.name && z.has(e.name.name); - if (e instanceof Qi) return ie(e); - if (e instanceof mi) { - if (k) return 1; - i = e.expression; - if (i instanceof Xi && ue(i.definition())) return 1; - if (p.option("unsafe")) { - if (ge(i) && be[i.name]) return; - if (ke(i)) return; - } - return $ ? !b && ((ae || !q) && (!e.optional && i.may_throw_on_access(p))) : 1; - } - if (e instanceof bi) return 1; - if (e instanceof Xi) { - if (ie(e)) return !B(e, n); - if (k && re(e)) return 1; - var f = e.definition(); - return (ae || f.scope.resolve() !== se) && !pe(e); - } - if (e instanceof tr) return !e.is_expr_pure(p); - if (e instanceof ai) return M(e.name) || (e.value || n instanceof ri) && e.name.match_symbol(function(e) { - return e instanceof Hi && (z.has(e.name) || k && re(e)); - }, !0); - if (e instanceof Ai) return 1; - e = Sr(e.left, e); - return e && (e instanceof mi || (M(e) || e.match_symbol(function(e) { - return e instanceof Xi && (z.has(e.name) || D && p.exposed(e.definition())); - }, !0))); - } - function V(e, n) { - var t, i, r; - l.push(e), e instanceof Di ? e.elements.forEach(function(e) { - V(e, n); - }) : e instanceof Si ? ((t = e.left) instanceof Oi || h.push(l.slice()), V(t), V(e.right), - t instanceof Xi && "=" == e.operator && (s[t.name] = (s[t.name] || 0) + 1)) : e instanceof Ti ? V(e.expression, n) : e instanceof ki ? (r = we[e.operator], - n && r && "??" != e.operator && e.right instanceof Si && "=" == e.right.operator && !(e.right.left instanceof Oi) && h.push(l.slice()), - V(e.left, !r && n), V(e.right, n)) : e instanceof pi ? (V(e.expression), e.args.forEach(V)) : e instanceof Qt ? V(e.expression) : e instanceof Ei ? (V(e.condition), - V(e.consequent, n), V(e.alternative, n)) : e instanceof ti ? e.definitions.forEach(V) : e instanceof _i ? V(e.expression) : e instanceof st ? (V(e.condition), - e.body instanceof it || V(e.body)) : e instanceof Rt ? e.value && V(e.value) : e instanceof ut ? (e.init && V(e.init, !0), - e.condition && V(e.condition), e.step && V(e.step, !0), e.body instanceof it || V(e.body)) : e instanceof lt ? (V(e.object), - e.body instanceof it || V(e.body)) : e instanceof Gt ? (V(e.condition), e.body instanceof it || V(e.body), - !e.alternative || e.alternative instanceof it || V(e.alternative)) : e instanceof Ci ? e.properties.forEach(function(e) { - l.push(e), e.key instanceof Gn && V(e.key), e instanceof Fi && V(e.value, n), l.pop(); - }) : e instanceof hi ? (i = e.expressions.length - (n ? 0 : 1), e.expressions.forEach(function(e, n) { - V(e, n < i); - })) : e instanceof et ? V(e.body, !0) : e instanceof bi ? V(e.expression) : e instanceof gi ? (V(e.expression), - V(e.property)) : e instanceof Jt ? (V(e.expression), e.body.forEach(V)) : e instanceof yi ? wr[e.operator] ? h.push(l.slice()) : V(e.expression) : e instanceof ai ? (e.name instanceof Li && (e.value ? (r = e.name.definition()).references.length > r.replaced && h.push(l.slice()) : f[e.name.name] = (f[e.name.name] || 0) + 1), - e.value && V(e.value)) : e instanceof Ai && e.expression && V(e.expression), l.pop(); - } - function W(e, n) { - var t = u.parent(n); - return t instanceof Di || t instanceof Si || t instanceof Ti || t instanceof ki || t instanceof pi || t instanceof Qt || t instanceof Ei ? e : t instanceof ti ? K(t, n + 1) : t instanceof Rt || t instanceof Gt || t instanceof at || t instanceof Mi || t instanceof mi ? e : t instanceof hi ? (t.tail_node() === e ? W : K)(t, n + 1) : t instanceof et ? K(t, n + 1) : t instanceof bi || t instanceof Jt || t instanceof yi || t instanceof ai || t instanceof Ai ? e : null; - } - function G(e, n, t) { - for (var i; i = e, (e = u.parent(++t)) instanceof Si && e.operator.slice(0, -1) == n || e instanceof ki && e.operator == n; ); - return i; - } - function J(e, n, t, i, r) { - var o = I; - I = !1; - var a = y, s = w, f = u.stack; - return u.stack = [ i ], e.transform(u), u.stack = f, w = s, y = a, I = o, P ? (P = !1, - t) : n(i, r + 1); - } - function X(e, n) { - var t = u.parent(n); - if (t instanceof Di) return X(t, n + 1); - if (t instanceof Si) return A(t) || t.left.match_symbol(function(e) { - return e instanceof Xi && (x.name == e.name || b.name == e.name); - }) ? e : t.left !== e && we[i = t.operator.slice(0, -1)] ? G(t, i, n) : X(t, n + 1); - if (t instanceof ki) return t.left !== e && we[i = t.operator] ? G(t, i, n) : X(t, n + 1); - if (t instanceof pi) return t; - if (t instanceof Qt) return t.expression !== e ? e : X(t, n + 1); - if (t instanceof Ei) return t.condition !== e ? e : X(t, n + 1); - if (t instanceof ti) return K(t, n + 1); - if (t instanceof ft) return e; - if (t instanceof Rt) return K(t, n + 1); - if (t instanceof ut) return t.init !== e && t.condition !== e ? e : X(t, n + 1); - if (t instanceof lt) return t.init !== e ? e : X(t, n + 1); - if (t instanceof Gt) return t.condition !== e ? e : X(t, n + 1); - if (t instanceof Mi) { - var i = u.parent(n + 1); - return Ln(i.properties, function(e) { - return e instanceof Fi; - }) ? X(i, n + 2) : i; - } - return t instanceof mi ? t.expression === e ? X(t, n + 1) : e : t instanceof hi ? (t.tail_node() === e ? X : K)(t, n + 1) : t instanceof et ? K(t, n + 1) : t instanceof bi ? X(t, n + 1) : t instanceof Jt ? t.expression !== e ? e : X(t, n + 1) : t instanceof yi ? "delete" == t.operator ? e : X(t, n + 1) : t instanceof ai ? t.name.match_symbol(function(e) { - return e instanceof Hi && (x.name == e.name || b.name == e.name); - }) ? e : X(t, n + 1) : t instanceof ct ? t.condition !== e ? e : X(t, n + 1) : t instanceof Ai ? X(t, n + 1) : null; - } - function K(n, t) { - var i = u.parent(t); - if (U(n, i)) return n; - if (L(n, i)) return n; - if (i instanceof Di) return K(i, t + 1); - if (i instanceof Si) return r(i.left); - if (i instanceof Ti) return n; - if (i instanceof ki) return K(i, t + 1); - if (i instanceof pi) return K(i, t + 1); - if (i instanceof Qt) return K(i, t + 1); - if (i instanceof Ei) return K(i, t + 1); - if (i instanceof ti) return K(i, t + 1); - if (i instanceof Rt) return K(i, t + 1); - if (i instanceof Gt) return K(i, t + 1); - if (i instanceof at) return n; - if (i instanceof Mi) { - var e = u.parent(t + 1); - return Ln(e.properties, function(e) { - return e instanceof Fi; - }) ? K(e, t + 2) : e; - } - if (i instanceof mi) { - e = i.expression; - return e === n ? K(i, t + 1) : J(e, K, n, i, t); - } - return i instanceof hi || i instanceof et ? K(i, t + 1) : i instanceof bi ? n : i instanceof Jt || i instanceof yi ? K(i, t + 1) : i instanceof ai ? r(i.name) : i instanceof Ai ? n : null; - function r(e) { - return A(i) ? n : e !== n && e instanceof Oi ? J(e, K, n, i, t) : K(i, t + 1); - } - } - function Q(e) { - if (i) i = !1; else if (!(a < 1)) { - var n = e instanceof Si && "=" == e.operator ? e.left : e; - if (n instanceof Xi) { - var t = n.definition(); - if (!t.undeclared && !ue(t)) { - if (n !== e) { - if (he(n, p)) return; - if (t.references.length - t.replaced < 2) return; - e = m.clone(); - e[e instanceof Si ? "right" : "value"] = n, 0 <= m.name_index && (e.name_index = m.name_index, - e.arg_index = m.arg_index), m = e; - } - return b = t; - } - } - } - } - function Z(e) { - return e.references.length - e.replaced - (s[e.name] || 0); - } - function ee(e) { - if (e instanceof Si) return e.right; - if (e instanceof ki) { - var n = e.clone(); - return n.right = e.right.right, n; - } - return e instanceof ai ? e.value : void 0; - } - function ne(t, i) { - return function(e, n) { - if (n.in_boolean_context()) { - if (t && e.is_truthy() && !e.has_side_effects(p)) return !0; - if (e.is_constant()) { - n = e.evaluate(p); - if (!(n instanceof Gn)) return !n == !t; - } - } - return i(e); - }; - } - function te(e) { - if (e instanceof hi) switch (e.expressions.length) { - case 0: - return null; - - case 1: - return me(0, this.parent(), e, e.expressions[0]); - } - } - function ie(e) { - e = z.get(e.name); - if (e && !Ln(e, function(e) { - return !e; - })) return e[0] !== x || void (S = !1); - } - function re(e) { - e = e.definition(); - return !(1 == e.orig.length && e.orig[0] instanceof Vi) && (e.scope.resolve() !== se || (!(!O || !p.exposed(e)) || !Ln(e.references, function(e) { - return e.scope.resolve() === se; - }))); - } - function t(e, n) { - if (e instanceof Si) return t(e.left, !0); - if (e instanceof yi) return t(e.expression, !0); - if (e instanceof ai) return e.value && t(e.value); - if (n) { - if (e instanceof _i) return t(e.expression, !0); - if (e instanceof gi) return t(e.expression, !0); - if (e instanceof Xi) return e.definition().scope.resolve() !== se; - } - return !1; - } - }(e, c), fe && 0 < n--; ); - return e; - function p(e, n) { - if (!(e instanceof rt)) return e; - for (var t = null, i = 0; i < e.body.length; i++) { - var r = e.body[i]; - if (r instanceof oi && ee(r)) n.push(r); else { - if (t || C(r)) return !1; - t = r; - } - } - return t; - } - function u(e) { - return e instanceof Si ? [ e ] : e instanceof hi ? e.expressions.slice() : void 0; - } - function l(e, n, t) { - var i = u(n); - if (i) { - for (var r = !1, o = i.length - 1; 0 <= --o; ) { - var a, s = i[o]; - s instanceof Si && "=" == s.operator && s.left instanceof Xi && (a = i.slice(o + 1), - v(s.left, s.right, a) && (r = !0, i = i.slice(0, o + 1).concat(a))); - } - if (e instanceof ti) { - t = t || 0; - for (o = e.definitions.length; 0 <= --o; ) { - var f = e.definitions[o]; - if (f.value) { - v(f.name, f.value, i) && (r = !0), function(e, n, t) { - if (c.option("conditionals") && !(e.name instanceof Oi)) { - for (var i = !1, r = e.name.definition(); n.length > t; ) { - var o = hn(c, r, e.value, n[0]); - if (!o) break; - e.value = o, n.shift(), i = !0; - } - return i; - } - }(f, i, t) && (r = !0); - break; - } - } - e instanceof oi && h(e.definitions, i, t) && (r = !0); - } - return r && i; - } - } - function d(e, n) { - if (e instanceof et && !ee(n)) { - var t = u(e.body); - if (t) { - e = []; - if (h(e, t.reverse(), 0)) return n.definitions = e.reverse().concat(n.definitions), - t.reverse(); - } - } - } - function h(e, n, t) { - for (var i = !1; n.length > t; ) { - var r = n[0]; - if (!(r instanceof Si)) break; - if ("=" != r.operator) break; - var o = r.left; - if (!(o instanceof Xi)) break; - if (ge(o)) break; - if (o.scope.resolve() !== se) break; - var a = o.definition(); - if (a.scope !== se) break; - if (a.orig.length > a.eliminated + 1) break; - if ("SymbolVar" != a.orig[0].TYPE) break; - o = ve(Li, o, o); - e.push(ve(ai, r, { - name: o, - value: r.right - })), a.orig.push(o), a.replaced++, n.shift(), i = !0; - } - return i; - } - function v(e, n, t) { - if (n instanceof Ci) { - var i = !1; - do { - var r = t[0]; - if (!(r instanceof Si)) break; - if ("=" != r.operator) break; - if (!(r.left instanceof mi)) break; - var o = r.left.expression; - if (!(o instanceof Xi)) break; - if (e.name != o.name) break; - if (!r.right.is_constant_expression(se)) break; - var a = r.left.property; - if ((a = a instanceof Gn ? a.evaluate(c) : a) instanceof Gn) break; - o = "__proto__" == (a = "" + a) || c.has_directive("use strict") ? function(e) { - e = e.key; - return "string" == typeof e && e != a && "__proto__" != e; - } : function(e) { - var n = e.key; - return e instanceof Ni || e instanceof Pi ? "string" == typeof n && n != a : "__proto__" !== n; - }; - } while (Ln(n.properties, o) && (n.properties.push(ve(Fi, r, { - key: a, - value: r.right - })), t.shift(), i = !0, t.length)); - return i; - } - } - } - function Y(i, r, o) { - var a, s = !1; - function f(e) { - a ? (a.push(e), M(e) || (a.required = !0)) : o.push(e); - } - r.walk(new mr(function(e, n) { - if (e instanceof jt) return e.extends = null, e.properties = [], f(e), !0; - if (e instanceof ti) { - var t = []; - return e.remove_initializers(i, t) && Gn.warn("Dropping initialization in unreachable code [{file}:{line},{col}]", e.start), - 0 < t.length && (e.definitions = t, f(e)), !0; - } - if (e instanceof $t) return f(e), !0; - if (e instanceof vt) return !0; - if (e instanceof nt) { - t = a; - return a = [], n(), a.required ? o.push(ve(rt, r, { - body: a - })) : a.length && [].push.apply(o, a), a = t, !0; - } - e instanceof Ut || (s = !0); - })), s && Gn.warn("Dropping unreachable code [{file}:{line},{col}]", r.start); - } - function ye(e, n) { - return e.is_undefined || e instanceof ur || e instanceof wi && "void" == e.operator && !(n && e.expression.has_side_effects(n)); - } - function R(e, n, t) { - switch (e) { - case "-": - return n.is_negative_zero() && (!(t instanceof ir) || 0 == t.value); - - case "&&": - case "||": - return n.is_negative_zero() || t.is_negative_zero(); - - case "*": - case "/": - case "%": - case "**": - return !0; - - default: - return !1; - } - } - function B(e, n) { - return n || /strict/.test(e.option("pure_getters")); - } - function L(e, n, t) { - switch (n) { - case "&&": - return t.left.is_defined(e) && t.right.is_defined(e); - - case "||": - return t.left.is_truthy() || t.right.is_defined(e); - - case "??": - return t.left.is_defined(e) || t.right.is_defined(e); - - default: - return !0; - } - } - Xi.DEFMETHOD("is_declared", function(e) { - return this.defined || !this.definition().undeclared || e.option("unsafe") && be[this.name]; - }), (se = function(e, n) { - e.DEFMETHOD("is_truthy", n); - })(Gn, Fn), se(Di, jn), se(Si, function() { - return "=" == this.operator && this.right.is_truthy(); - }), se(_t, jn), se(Ci, jn), se(sr, jn), se(hi, function() { - return this.tail_node().is_truthy(); - }), se(Xi, function() { - var e = this.fixed_value(); - if (!e) return !1; - this.is_truthy = Fn; - e = e.is_truthy(); - return delete this.is_truthy, e; - }), (se = function(e, n) { - e.DEFMETHOD("is_negative_zero", n); - })(Gn, jn), se(Di, Fn), se(Si, function() { - var e = this.operator; - return "=" == e ? this.right.is_negative_zero() : R(e.slice(0, -1), this.left, this.right); - }), se(ki, function() { - return R(this.operator, this.left, this.right); - }), se(ir, function() { - return 0 == this.value && 1 / this.value < 0; - }), se(_t, Fn), se(Ci, Fn), se(sr, Fn), se(hi, function() { - return this.tail_node().is_negative_zero(); - }), se(Xi, function() { - var e = this.fixed_value(); - if (!e) return !0; - this.is_negative_zero = jn; - e = e.is_negative_zero(); - return delete this.is_negative_zero, e; - }), se(wi, function() { - return "+" == this.operator && this.expression.is_negative_zero() || "-" == this.operator; - }), se = function(e, n) { - e.DEFMETHOD("_dot_throw", n); - }, Gn.DEFMETHOD("may_throw_on_access", function(e, n) { - return !e.option("pure_getters") || this._dot_throw(e, n); - }), se(Gn, B), se(Di, Fn), se(Si, function(e) { - var n = this.operator, t = this.left, i = this.right; - return "=" != n ? we[n.slice(0, -1)] && (t._dot_throw(e) || i._dot_throw(e)) : !!i._dot_throw(e) && (!(t instanceof Xi) || (!(i instanceof ki && "||" == i.operator && t.name == i.left.name) || i.right._dot_throw(e))); - }), se(ki, function(e) { - return we[this.operator] && (this.left._dot_throw(e) || this.right._dot_throw(e)); - }), se(Ft, Fn), se(Ei, function(e) { - return this.consequent._dot_throw(e) || this.alternative._dot_throw(e); - }), se(ir, Fn), se(_i, function(e, n) { - if (!B(e, n)) return !1; - n = this.expression; - return n instanceof Xi && (n = n.fixed_value()), !("prototype" == this.property && D(n)); - }), se(_t, Fn), se(fr, jn), se(Ci, function(n, t) { - return B(n, t) && !Ln(this.properties, function(e) { - return e instanceof Fi && ("__proto__" !== e.key || !e.value._dot_throw(n, t)); - }); - }), se(Qi, function(e, n) { - return B(e, n) && !this.scope.resolve().new; - }), se(hi, function(e) { - return this.tail_node()._dot_throw(e); - }), se(Xi, function(e, n) { - if (this.is_undefined) return !0; - if (!B(e, n)) return !1; - if (ge(this) && this.is_declared(e)) return !1; - if (this.is_immutable()) return !1; - n = this.definition(); - if (ue(n) && !n.scope.rest && Ln(n.scope.argnames, function(e) { - return e instanceof Ui; - })) return 2 < n.scope.uses_arguments; - n = this.fixed_value(); - return !n || (this._dot_throw = jn, n._dot_throw(e) ? (delete this._dot_throw, !0) : (this._dot_throw = Fn, - !1)); - }), se(wi, function() { - return "void" == this.operator; - }), se(xi, Fn), se(ur, jn), (se = function(e, n) { - e.DEFMETHOD("is_defined", n); - })(Gn, Fn), se(Di, jn), se(Si, function(e) { - var n = this.operator; - return "=" == n ? this.right.is_defined(e) : L(e, n.slice(0, -1), this); - }), se(ki, function(e) { - return L(e, this.operator, this); - }), se(Ei, function(e) { - return this.consequent.is_defined(e) && this.alternative.is_defined(e); - }), se(ir, jn), se(lr, Fn), se(_t, jn), se(Ci, jn), se(hi, function(e) { - return this.tail_node().is_defined(e); - }), se(Xi, function(e) { - if (this.is_undefined) return !1; - if (ge(this) && this.is_declared(e)) return !0; - if (this.is_immutable()) return !0; - var n = this.fixed_value(); - if (!n) return !1; - this.is_defined = Fn; - e = n.is_defined(e); - return delete this.is_defined, e; - }), se(wi, function() { - return "void" != this.operator; - }), se(xi, jn), se(ur, Fn), function(e) { - e(Gn, Fn), e(Si, function(e) { - return "=" == this.operator && this.right.is_boolean(e); - }); - var n = Bn("in instanceof == != === !== < <= >= >"); - e(ki, function(e) { - return n[this.operator] || we[this.operator] && this.left.is_boolean(e) && this.right.is_boolean(e); - }), e(dr, jn); - var t = Bn("every hasOwnProperty isPrototypeOf propertyIsEnumerable some"); - e(pi, function(e) { - if (!e.option("unsafe")) return !1; - e = this.expression; - return e instanceof _i && (t[e.property] || "test" == e.property && e.expression instanceof sr); - }), e(Ei, function(e) { - return this.consequent.is_boolean(e) && this.alternative.is_boolean(e); - }), e(di, Fn), e(hi, function(e) { - return this.tail_node().is_boolean(e); - }), e(Xi, function(e) { - var n = this.fixed_value(); - if (!n) return !1; - this.is_boolean = Fn; - e = n.is_boolean(e); - return delete this.is_boolean, e; - }); - var i = Bn("! delete"); - e(wi, function() { - return i[this.operator]; - }); - }(function(e, n) { - e.DEFMETHOD("is_boolean", n); - }), function(e) { - e(Gn, Fn); - var n = Bn("- * / % ** & | ^ << >> >>>"); - e(Si, function(e) { - return n[this.operator.slice(0, -1)] || "=" == this.operator && this.right.is_number(e); - }), e(ki, function(e) { - return !!n[this.operator] || "+" == this.operator && ((this.left.is_boolean(e) || this.left.is_number(e)) && (this.right.is_boolean(e) || this.right.is_number(e))); - }); - var t = Bn([ "charCodeAt", "getDate", "getDay", "getFullYear", "getHours", "getMilliseconds", "getMinutes", "getMonth", "getSeconds", "getTime", "getTimezoneOffset", "getUTCDate", "getUTCDay", "getUTCFullYear", "getUTCHours", "getUTCMilliseconds", "getUTCMinutes", "getUTCMonth", "getUTCSeconds", "getYear", "indexOf", "lastIndexOf", "localeCompare", "push", "search", "setDate", "setFullYear", "setHours", "setMilliseconds", "setMinutes", "setMonth", "setSeconds", "setTime", "setUTCDate", "setUTCFullYear", "setUTCHours", "setUTCMilliseconds", "setUTCMinutes", "setUTCMonth", "setUTCSeconds", "setYear", "toExponential", "toFixed", "toPrecision" ]); - e(pi, function(e) { - if (!e.option("unsafe")) return !1; - e = this.expression; - return e instanceof _i && (t[e.property] || ge(e.expression) && "Math" == e.expression.name); - }), e(Ei, function(e) { - return this.consequent.is_number(e) && this.alternative.is_number(e); - }), e(di, Fn), e(or, jn), e(hi, function(e) { - return this.tail_node().is_number(e); - }), e(Xi, function(e) { - var n = this.fixed_value(); - if (!n) return !1; - this.is_number = Fn; - e = n.is_number(e); - return delete this.is_number, e; - }); - var i = Bn("+ - ~ ++ --"); - e(yi, function() { - return i[this.operator]; - }); - }(function(e, n) { - e.DEFMETHOD("is_number", n); - }), function(e) { - e(Gn, Fn), e(Si, function(e) { - switch (this.operator) { - case "+=": - if (this.left.is_string(e)) return !0; - - case "=": - return this.right.is_string(e); - } - }), e(ki, function(e) { - return "+" == this.operator && (this.left.is_string(e) || this.right.is_string(e)); - }); - var n = Bn([ "charAt", "substr", "substring", "toLowerCase", "toString", "toUpperCase", "trim" ]); - e(pi, function(e) { - if (!e.option("unsafe")) return !1; - e = this.expression; - return e instanceof _i && n[e.property]; - }), e(Ei, function(e) { - return this.consequent.is_string(e) && this.alternative.is_string(e); - }), e(hi, function(e) { - return this.tail_node().is_string(e); - }), e(rr, jn), e(Xi, function(e) { - var n = this.fixed_value(); - if (!n) return !1; - this.is_string = Fn; - e = n.is_string(e); - return delete this.is_string, e; - }), e(tr, function(e) { - return !this.tag || En(e, this.tag); - }), e(wi, function() { - return "typeof" == this.operator; - }); - }(function(e, n) { - e.DEFMETHOD("is_string", n); - }); - var we = Bn("&& || ??"); - function U(e) { - Gn.warn("global_defs {node} redefined [{file}:{line},{col}]", { - node: e, - file: e.start.file, - line: e.start.line, - col: e.start.col - }); - } - function ne(e, n, t) { - return n.print_to_string().length - e.print_to_string().length < (t || 0) ? n : e; - } - function V(e, n, t) { - return ne(ve(et, e, { - body: e - }), ve(et, n, { - body: n - }), t).body; - } - function te(e, n, t, i) { - return (Wn(e) ? V : ne)(n, t, i); - } - function ie(n) { - var t = Object.create(null); - return Object.keys(n).forEach(function(e) { - t[e] = Bn(n[e]); - }), t; - } - function re(e) { - for (var n = 0; n < e.length; n++) { - var t = e[n]; - if (!(t instanceof Kn)) return t; - } - } - function oe() { - return this.value ? ve(Bt, this.value, { - value: this.value - }) : re(this.body); - } - function ae(e, n) { - var t = n.evaluate(e); - return t === n ? n : te(e, n, X(t, n).optimize(e), e.eval_threshold); - } - se = function(e, n) { - e.DEFMETHOD("_find_defs", n); - }, mt.DEFMETHOD("resolve_defines", function(o) { - return o.option("global_defs") ? (this.figure_out_scope({ - ie: o.option("ie") - }), this.transform(new _r(function(e) { - var n = e._find_defs(o, ""); - if (n) { - for (var t, i = 0, r = e; (t = this.parent(i++)) && t instanceof mi && t.expression === r; ) r = t; - if (!Sr(r, t)) return n; - U(e); - } - }))) : this; - }), se(Gn, Mn), se(_i, function(e, n) { - return this.expression._find_defs(e, "." + this.property + n); - }), se(Hi, function(e) { - this.definition().global && Vn(e.option("global_defs"), this.name) && U(this); - }), se(Xi, function(e, n) { - if (this.definition().global) { - e = e.option("global_defs"), n = this.name + n; - return Vn(e, n) ? function n(e, t) { - if (e instanceof Gn) return e.clone(!0); - if (Array.isArray(e)) return ve(Di, t, { - elements: e.map(function(e) { - return n(e, t); - }) - }); - if (e && "object" == typeof e) { - var i, r = []; - for (i in e) Vn(e, i) && r.push(ve(Fi, t, { - key: i, - value: n(e[i], t) - })); - return ve(Ci, t, { - properties: r - }); - } - return X(e, t); - }(e[n], this) : void 0; - } - }), Et.DEFMETHOD("first_statement", oe), St.DEFMETHOD("first_statement", oe), _t.DEFMETHOD("first_statement", function() { - return re(this.body); - }), _t.DEFMETHOD("length", function() { - for (var e = this.argnames, n = 0; n < e.length && !(e[n] instanceof li); n++); - return n; - }); - var se = [ "constructor", "toString", "valueOf" ], fe = ie({ - Array: [ "indexOf", "join", "lastIndexOf", "slice" ].concat(se), - Boolean: se, - Function: se, - Number: [ "toExponential", "toFixed", "toPrecision" ].concat(se), - Object: se, - RegExp: [ "exec", "test" ].concat(se), - String: [ "charAt", "charCodeAt", "concat", "indexOf", "italics", "lastIndexOf", "match", "replace", "search", "slice", "split", "substr", "substring", "toLowerCase", "toUpperCase", "trim" ].concat(se) - }), xe = ie({ - Array: [ "isArray" ], - Math: [ "abs", "acos", "asin", "atan", "ceil", "cos", "exp", "floor", "log", "round", "sin", "sqrt", "tan", "atan2", "pow", "max", "min" ], - Number: [ "isFinite", "isNaN" ], - Object: [ "create", "getOwnPropertyDescriptor", "getOwnPropertyNames", "getPrototypeOf", "isExtensible", "isFrozen", "isSealed", "keys" ], - String: [ "fromCharCode", "raw" ] - }); - function ke(e) { - if (e instanceof _i) { - var n = e.expression; - if (ge(n)) { - var t = xe[n.name]; - return t && (t[e.property] || "Math" == n.name && "random" == e.property); - } - } - } - function Ee(e) { - return ve(wi, e, { - operator: "!", - expression: e - }); - } - function Se(e, n, t) { - e = Ee(e); - if (t) { - t = ve(et, n, { - body: n - }); - return ne(e, t) === t ? n : e; - } - return ne(e, n); - } - !function(e) { - e(Gn, Fn), e(ir, jn), e(sr, Fn); - var n = Bn("! ~ - + void"); - e(wi, function() { - return n[this.operator] && this.expression instanceof ir; - }); - }(function(e, n) { - e.DEFMETHOD("is_constant", n); - }), function(e) { - Gn.DEFMETHOD("evaluate", function(e, n) { - if (!e.option("evaluate")) return this; - var t = [], e = this._eval(e, n, t, 1); - return t.forEach(function(e) { - delete e._eval; - }), !n && e && !(e instanceof RegExp) && ("function" == typeof e || "object" == typeof e) ? this : e; - }); - var d = new mr(function(e) { - e instanceof Si && f(e.left), e instanceof yi && wr[e.operator] && f(e.expression); - }); - function f(e) { - e instanceof $i ? e.elements.forEach(f) : e instanceof qi ? e.properties.forEach(function(e) { - f(e.value); - }) : e instanceof mi ? f(e.expression) : e instanceof Xi && e.definition().references.forEach(function(e) { - delete e._eval; - }); - } - e(Jn, function() { - throw new Error(Yn("Cannot evaluate a statement [{file}:{line},{col}]", this.start)); - }), e(gt, Pn), e(ar, Pn), e(Ft, Pn), e(Gn, Pn), e(ir, function() { - return this.value; - }), e(Si, function(e, n, t, i) { - var r = this.left; - if (!n) { - if (!(r instanceof Xi)) return this; - if (!Vn(r, "_eval")) { - if (!r.fixed) return this; - var o = r.definition(); - if (!o.fixed) return this; - if (o.undeclared) return this; - if (o.last_ref !== r) return this; - if ("m" == o.single_use) return this; - } - } - o = this.operator, o = !Vn(r, "_eval") && r instanceof Xi && r.fixed && r.definition().fixed ? r : "=" == o ? this.right : ve(ki, this, { - operator: o.slice(0, -1), - left: r, - right: this.right - }); - r.walk(d); - i = o._eval(e, n, t, i); - return "object" == typeof i ? this : (f(r), i); - }), e(hi, function(e, n, t, i) { - if (!n) return this; - for (var r = this.expressions, o = 0, a = r.length - 1; o < a; o++) r[o].walk(d); - var s = r[a], i = s._eval(e, n, t, i); - return i === s ? this : i; - }), e(_t, function(e) { - if (e.option("unsafe")) { - e = function() {}; - return e.node = this, e.toString = function() { - return "function(){}"; - }, e; - } - return this; - }), e(Di, function(e, n, t, i) { - if (e.option("unsafe")) { - for (var r = [], o = 0; o < this.elements.length; o++) { - var a = this.elements[o]; - if (a instanceof lr) return this; - var s = a._eval(e, n, t, i); - if (a === s) return this; - r.push(s); - } - return r; - } - return this; - }); - var c = Bn("__proto__ toString valueOf"); - e(Ci, function(e, n, t, i) { - if (e.option("unsafe")) { - for (var r = {}, o = 0; o < this.properties.length; o++) { - var a = this.properties[o]; - if (!(a instanceof Fi)) return this; - var s = a.key; - if (s instanceof Gn && (s = s._eval(e, n, t, i)) === a.key) return this; - if (c[s]) return this; - if (r[s] = a.value._eval(e, n, t, i), r[s] === a.value) return this; - } - return r; - } - return this; - }); - var u = Bn("! typeof void"); - e(wi, function(e, n, t, i) { - var r = this.expression, o = this.operator; - if (e.option("typeofs") && "typeof" == o && (r instanceof _t || r instanceof Xi && r.fixed_value() instanceof _t)) return "function"; - var a = r instanceof Xi && r.definition(); - u[o] || a && a.fixed || i++, r.walk(d); - var s = r._eval(e, n, t, i); - if (s === r) return n && "void" == o ? void 0 : this; - switch (o) { - case "!": - return !s; - - case "typeof": - return s instanceof RegExp ? this : typeof s; - - case "void": - return; - - case "~": - return ~s; - - case "-": - return -s; - - case "+": - return +s; - - case "++": - case "--": - if (!a) return this; - if (!n) { - if (a.undeclared) return this; - if (a.last_ref !== r) return this; - } - return Vn(r, "_eval") && (s = +(o[0] + 1) + +s), f(r), s; - } - return this; - }), e(xi, function(e, n, t, i) { - var r = this.expression; - if (r instanceof Xi) { - if (!Vn(r, "_eval")) { - if (!r.fixed) return this; - if (!n) { - var o = r.definition(); - if (!o.fixed) return this; - if (o.undeclared) return this; - if (o.last_ref !== r) return this; - } - } - } else if (!n) return this; - r instanceof Xi && r.definition().fixed || i++, r.walk(d); - i = r._eval(e, n, t, i); - return i === r ? this : (f(r), +i); - }); - var l = Bn("&& || === !=="); - e(ki, function(e, n, t, i) { - l[this.operator] || i++; - var r = this.left._eval(e, n, t, i); - if (r === this.left) return this; - if (this.operator == (r ? "||" : "&&")) return r; - var o, a = this.right._eval(e, n && !(r && "object" == typeof r), t, i); - if (a === this.right) return this; - switch (this.operator) { - case "&&": - o = r && a; - break; - - case "||": - o = r || a; - break; - - case "??": - o = null == r ? a : r; - break; - - case "|": - o = r | a; - break; - - case "&": - o = r & a; - break; - - case "^": - o = r ^ a; - break; - - case "+": - o = r + a; - break; - - case "-": - o = r - a; - break; - - case "*": - o = r * a; - break; - - case "/": - o = r / a; - break; - - case "%": - o = r % a; - break; - - case "<<": - o = r << a; - break; - - case ">>": - o = r >> a; - break; - - case ">>>": - o = r >>> a; - break; - - case "==": - o = r == a; - break; - - case "===": - o = r === a; - break; - - case "!=": - o = r != a; - break; - - case "!==": - o = r !== a; - break; - - case "<": - o = r < a; - break; - - case "<=": - o = r <= a; - break; - - case ">": - o = a < r; - break; - - case ">=": - o = a <= r; - break; - - case "**": - o = Math.pow(r, a); - break; - - case "in": - if (a && "object" == typeof a && Vn(a, r)) { - o = !0; - break; - } - - default: - return this; - } - if (isNaN(o)) return e.find_parent(ht) ? this : o; - if (e.option("unsafe_math") && !n && o && "number" == typeof o && ("+" == this.operator || "-" == this.operator)) { - n = Math.max(0, s(r), s(a)); - if (n < 16) return +o.toFixed(n); - } - return o; - function s(e) { - e = /(\.[0-9]*)?(e.+)?$/.exec(+e); - return (e[1] || ".").length - 1 - (e[2] || "").slice(1); - } - }), e(Ei, function(e, n, t, i) { - var r = this.condition._eval(e, n, t, i); - if (r === this.condition) return this; - r = r ? this.consequent : this.alternative, i = r._eval(e, n, t, i); - return i === r ? this : i; - }), e(Xi, function(e, n, t, i) { - var r, o = this.fixed_value(); - if (!o) return this; - if (Vn(o, "_eval")) r = o._eval(); else { - if (this._eval = Pn, r = o._eval(e, n, t, i), delete this._eval, r === o) return this; - o._eval = function() { - return r; - }, t.push(o); - } - return r && "object" == typeof r && !function(n, e) { - var t = n.definition().escaped; - switch (t.length) { - case 0: - return 1; - - case 1: - var i = !1; - return t[0].walk(new mr(function(e) { - return !!i || (e === n ? i = !0 : e instanceof vt || void 0); - })), i; - - default: - return e <= t.depth; - } - }(this, i) ? this : r; - }); - var h = { - Array: Array, - Math: Math, - Number: Number, - Object: Object, - String: String - }, s = ie({ - Math: [ "E", "LN10", "LN2", "LOG2E", "LOG10E", "PI", "SQRT1_2", "SQRT2" ], - Number: [ "MAX_VALUE", "MIN_VALUE", "NaN", "NEGATIVE_INFINITY", "POSITIVE_INFINITY" ] - }), p = Bn("global ignoreCase multiline source"); - function v(e, n, t, i, r) { - for (var o = [], a = 0; a < e.length; a++) { - var s = e[a], f = s._eval(n, t, i, r); - if (s === f) return; - o.push(f); - } - return o; - } - e(mi, function(e, n, t, i) { - if (e.option("unsafe")) { - var r, o = this.expression; - if (!ge(o) && (null == (r = o._eval(e, n, t, i + 1)) || r === o)) return this; - var a = this.property; - if (a instanceof Gn && (a = a._eval(e, n, t, i)) === this.property) return this; - if (void 0 === r) { - i = s[o.name]; - if (!i || !i[a]) return this; - r = h[o.name]; - } else if (r instanceof RegExp) { - if (!p[a]) return this; - } else if ("object" == typeof r) { - if (!Vn(r, a)) return this; - } else if ("function" == typeof r) switch (a) { - case "name": - return r.node.name ? r.node.name.name : ""; - - case "length": - return r.node.length(); - - default: - return this; - } - return r[a]; - } - return this; - }), e(pi, function(i, r, o, a) { - var e = this.expression, n = e instanceof Xi ? e.fixed_value() : e; - if (n instanceof Et || n instanceof Ct || n instanceof Dt) { - if (n.evaluating) return this; - if (n.name && 0 < n.name.definition().recursive_refs) return this; - if (this.is_expr_pure(i)) return this; - var s = v(this.args, i, r, o, a); - if (!Ln(n.argnames, function(e, n) { - if (e instanceof li) { - if (!s) return; - if (void 0 === s[n]) { - var t = e.value._eval(i, r, o, a); - if (t === e.value) return; - s[n] = t; - } - e = e.name; - } - return !(e instanceof Oi); - })) return this; - if (n.rest instanceof Oi) return this; - if (!s && !r) return this; - var t = n.first_statement(); - if (!(t instanceof Bt)) { - if (r) { - n.walk(d); - var f = !1; - if (n.evaluating = !0, tt(n, new mr(function(e) { - return !!f || (e instanceof Bt ? (e.value && void 0 !== e.value._eval(i, !0, o, a) && (f = !0), - !0) : e instanceof vt && e !== n || void 0); - })), delete n.evaluating, !f) return; - } - return this; - } - if (!(u = t.value)) return; - var c = []; - return s && (!Ln(n.argnames, function(e, n) { - return p(e, s[n]); - }) || n.rest && !p(n.rest, s.slice(n.argnames.length))) && !r || (r && n.argnames.forEach(function(e) { - e instanceof li && e.value.walk(d); - }), n.evaluating = !0, u = u._eval(i, r, o, a), delete n.evaluating), c.forEach(function(e) { - delete e._eval; - }), u === t.value ? this : u; - } - if (i.option("unsafe") && e instanceof mi) { - var u, t = e.property; - if (t instanceof Gn && (t = t._eval(i, r, o, a)) === e.property) return this; - e = e.expression; - if (ge(e)) { - var l = xe[e.name]; - if (!l || !l[t]) return this; - u = h[e.name]; - } else { - if (null == (u = e._eval(i, r, o, a + 1)) || u === e) return this; - l = fe[u.constructor.name]; - if (!l || !l[t]) return this; - if (u instanceof RegExp && u.global && !(e instanceof sr)) return this; - } - if (!(s = v(this.args, i, r, o, a))) return this; - if ("replace" == t && "function" == typeof s[1]) return this; - try { - return u[t].apply(u, s); - } catch (e) { - Gn.warn("Error evaluating {code} [{file}:{line},{col}]", { - code: this, - file: this.start.file, - line: this.start.line, - col: this.start.col - }); - } finally { - u instanceof RegExp && (u.lastIndex = 0); - } - } - return this; - function p(e, n) { - var t = (e = e instanceof li ? e.name : e).definition(); - if (t.orig[t.orig.length - 1] !== e) return !1; - var i = n; - return t.references.forEach(function(e) { - e._eval = function() { - return i; - }, c.push(e); - }), !0; - } - }), e(di, Pn), e(tr, function(e, n, t, i) { - if (!e.option("templates")) return this; - if (this.tag) { - if (!En(e, this.tag)) return this; - f = function(e) { - return e; - }; - } - var r = v(this.expressions, e, n, t, i); - if (!r) return this; - for (var o = !1, a = f(this.strings[0]), s = 0; s < r.length; s++) a += r[s] + f(this.strings[s + 1]); - return o ? (this._eval = Pn, this) : a; - function f(e) { - return "string" != typeof (e = Sn(e)) && (o = !0), e; - } - }); - }(function(e, n) { - e.DEFMETHOD("_eval", n); - }), (se = function(e, t) { - e.DEFMETHOD("negate", function(e, n) { - return t.call(this, e, n); - }); - })(Gn, function() { - return Ee(this); - }), se(Jn, function() { - throw new Error("Cannot negate a statement"); - }), se(ki, function(e, n) { - var t = this.clone(), i = this.operator; - if (e.option("unsafe_comps")) switch (i) { - case "<=": - return t.operator = ">", t; - - case "<": - return t.operator = ">=", t; - - case ">=": - return t.operator = "<", t; - - case ">": - return t.operator = "<=", t; - } - switch (i) { - case "==": - return t.operator = "!=", t; - - case "!=": - return t.operator = "==", t; - - case "===": - return t.operator = "!==", t; - - case "!==": - return t.operator = "===", t; - - case "&&": - return t.operator = "||", t.left = t.left.negate(e, n), t.right = t.right.negate(e), - Se(this, t, n); - - case "||": - return t.operator = "&&", t.left = t.left.negate(e, n), t.right = t.right.negate(e), - Se(this, t, n); - } - return Ee(this); - }), se(Pt, function() { - return Ee(this); - }), se(Ei, function(e, n) { - var t = this.clone(); - return t.consequent = t.consequent.negate(e), t.alternative = t.alternative.negate(e), - Se(this, t, n); - }), se(bt, function() { - return Ee(this); - }), se(hi, function(e) { - var n = this.expressions.slice(); - return n.push(n.pop().negate(e)), J(this, n); - }), se(wi, function() { - return "!" == this.operator ? this.expression : Ee(this); - }); - var Te = Bn("Boolean decodeURI decodeURIComponent Date encodeURI encodeURIComponent Error escape EvalError isFinite isNaN Number Object parseFloat parseInt RangeError ReferenceError String SyntaxError TypeError unescape URIError"), Ae = Bn("Map Set WeakMap WeakSet"); - function De(e) { - for (;(e = e.tail_node()) instanceof Xi; ) if (!(e = e.fixed_value())) return !0; - return !(e instanceof Di || "Binary" == e.TYPE && !we[e.operator] || e instanceof ir || e instanceof _t || e instanceof Ci && Ln(e.properties, function(e) { - return !(e instanceof Ni || e instanceof bi); - }) || e instanceof Qi || e instanceof yi); - } - function Oe(e, n, t) { - return !Ln(e, t ? function(e) { - return e instanceof bi ? !t(e, n) : !e.has_side_effects(n); - } : function(e) { - return !e.has_side_effects(n); - }); - } - function $e(e, n) { - return !e.expression.is_string(n) || e.expression.has_side_effects(n); - } - function ze(e, n) { - for (var t = e.length; 0 <= --t; ) if (e[t].may_throw(n)) return !0; - return !1; - } - function qe(e, n) { - return !!e.may_throw(n) || (!((e = e instanceof Xi ? e.fixed_value() : e) instanceof _t) || (!!ze(e.argnames, n) || (!!ze(e.body, n) || yt(e) && e.value && e.value.may_throw(n)))); - } - function Ce(e, n) { - for (var t = e.length; 0 <= --t; ) if (!e[t].is_constant_expression(n)) return !1; - return !0; - } - function Me(e) { - return e && e.aborts(); - } - function Fe() { - var e = this.body.length; - return 0 < e && Me(this.body[e - 1]); - } - pi.DEFMETHOD("is_expr_pure", function(e) { - if (e.option("unsafe")) { - var n = this.expression; - if (ge(n)) { - if (Te[n.name]) return !0; - if (this instanceof di && Ae[n.name]) return !0; - } - if (ke(n)) return !0; - } - return e.option("annotations") && this.pure || !e.pure_funcs(this); - }), tr.DEFMETHOD("is_expr_pure", function(e) { - var n = this.tag; - if (!n) return !0; - if (e.option("unsafe")) { - if (ge(n) && Te[n.name]) return !0; - if (n instanceof _i && ge(n.expression)) { - var t = xe[n.expression.name]; - return t && (t[n.property] || "Math" == n.expression.name && "random" == n.property); - } - } - return !e.pure_funcs(this); - }), Gn.DEFMETHOD("is_call_pure", Fn), pi.DEFMETHOD("is_call_pure", function(e) { - if (!e.option("unsafe")) return !1; - var n = this.expression; - if (!(n instanceof _i)) return !1; - var t, i = n.expression, r = n.property; - if (i instanceof Di) t = fe.Array; else if (i.is_boolean(e)) t = fe.Boolean; else if (i.is_number(e)) t = fe.Number; else if (i instanceof sr) t = fe.RegExp; else if (i.is_string(e)) { - if (t = fe.String, "replace" == r) { - i = this.args[1]; - if (i && !i.is_string(e)) return !1; - } - } else n.may_throw_on_access(e) || (t = fe.Object); - return t && t[r]; - }), (se = function(e, n) { - e.DEFMETHOD("has_side_effects", n); - })(Gn, jn), se(Di, function(e) { - return Oe(this.elements, e, $e); - }), se(Si, function(e) { - var n = this.left; - if (!(n instanceof mi)) return !0; - var t = n.expression; - return !(t instanceof Qi) || !t.scope.resolve().new || n instanceof gi && n.property.has_side_effects(e) || this.right.has_side_effects(e); - }), se(ki, function(e) { - return this.left.has_side_effects(e) || this.right.has_side_effects(e) || "in" == this.operator && !bn(this.right); - }), se(it, function(e) { - return Oe(this.body, e); - }), se(pi, function(e) { - return !(this.is_expr_pure(e) || this.is_call_pure(e) && !this.expression.has_side_effects(e)) || Oe(this.args, e, $e); - }), se(Qt, function(e) { - return this.expression.has_side_effects(e) || Oe(this.body, e); - }), se(Ft, function(e) { - var n = this.extends; - return !(!n || c(n = n instanceof Xi ? n.fixed_value() : n)) || Oe(this.properties, e); - }), se(Nt, function(e) { - return this.key instanceof Gn && this.key.has_side_effects(e) || this.static && this.value && this.value.has_side_effects(e); - }), se(Ei, function(e) { - return this.condition.has_side_effects(e) || this.consequent.has_side_effects(e) || this.alternative.has_side_effects(e); - }), se(ir, Fn), se(ti, function(e) { - return Oe(this.definitions, e); - }), se($i, function(e) { - return Oe(this.elements, e); - }), se(zi, function(e) { - return this.key instanceof Gn && this.key.has_side_effects(e) || this.value.has_side_effects(e); - }), se(qi, function(e) { - return Oe(this.properties, e); - }), se(_i, function(e) { - return !this.optional && this.expression.may_throw_on_access(e) || this.expression.has_side_effects(e); - }), se(Qn, Fn), se(Gt, function(e) { - return this.condition.has_side_effects(e) || this.body && this.body.has_side_effects(e) || this.alternative && this.alternative.has_side_effects(e); - }), se(ot, function(e) { - return this.body.has_side_effects(e); - }), se(_t, Fn), se(Ci, function(e) { - return Oe(this.properties, e, function(e, n) { - e = e.expression; - return De(e) || e.has_side_effects(n); - }); - }), se(Qi, Fn), se(Mi, function(e) { - return this.key instanceof Gn && this.key.has_side_effects(e) || this.value.has_side_effects(e); - }), se(hi, function(e) { - return Oe(this.expressions, e); - }), se(et, function(e) { - return this.body.has_side_effects(e); - }), se(gi, function(e) { - return !this.optional && this.expression.may_throw_on_access(e) || this.expression.has_side_effects(e) || this.property.has_side_effects(e); - }), se(Jt, function(e) { - return this.expression.has_side_effects(e) || Oe(this.body, e); - }), se(Hi, Fn), se(Xi, function(e) { - return !this.is_declared(e) || !pe(this, e); - }), se(tr, function(e) { - return !this.is_expr_pure(e) || Oe(this.expressions, e); - }), se(Zt, function(e) { - return Oe(this.body, e) || this.bcatch && this.bcatch.has_side_effects(e) || this.bfinally && this.bfinally.has_side_effects(e); - }), se(yi, function(e) { - return Er[this.operator] || this.expression.has_side_effects(e); - }), se(ai, function() { - return this.value; - }), (se = function(e, n) { - e.DEFMETHOD("may_throw", n); - })(Gn, jn), se(ir, Fn), se(Oi, jn), se(Qn, Fn), se(_t, Fn), se(Qi, Fn), se(Hi, Fn), - se(Di, function(e) { - return ze(this.elements, e); - }), se(Si, function(e) { - return !!this.right.may_throw(e) || !(!e.has_directive("use strict") && "=" == this.operator && this.left instanceof Xi) && this.left.may_throw(e); - }), se(ki, function(e) { - return this.left.may_throw(e) || this.right.may_throw(e) || "in" == this.operator && !bn(this.right); - }), se(it, function(e) { - return ze(this.body, e); - }), se(pi, function(e) { - if (ze(this.args, e)) return !0; - if (this.is_expr_pure(e)) return !1; - this.may_throw = jn; - e = qe(this.expression, e); - return delete this.may_throw, e; - }), se(Qt, function(e) { - return this.expression.may_throw(e) || ze(this.body, e); - }), se(Ei, function(e) { - return this.condition.may_throw(e) || this.consequent.may_throw(e) || this.alternative.may_throw(e); - }), se(li, function(e) { - return this.name.may_throw(e) || this.value && this.value.may_throw(e); - }), se(ti, function(e) { - return ze(this.definitions, e); - }), se(_i, function(e) { - return !this.optional && this.expression.may_throw_on_access(e) || this.expression.may_throw(e); - }), se(Gt, function(e) { - return this.condition.may_throw(e) || this.body && this.body.may_throw(e) || this.alternative && this.alternative.may_throw(e); - }), se(ot, function(e) { - return this.body.may_throw(e); - }), se(Ci, function(e) { - return ze(this.properties, e); - }), se(Mi, function(e) { - return this.value.may_throw(e) || this.key instanceof Gn && this.key.may_throw(e); - }), se(Bt, function(e) { - return this.value && this.value.may_throw(e); - }), se(hi, function(e) { - return ze(this.expressions, e); - }), se(et, function(e) { - return this.body.may_throw(e); - }), se(gi, function(e) { - return !this.optional && this.expression.may_throw_on_access(e) || this.expression.may_throw(e) || this.property.may_throw(e); - }), se(Jt, function(e) { - return this.expression.may_throw(e) || ze(this.body, e); - }), se(Xi, function(e) { - return !this.is_declared(e) || !pe(this, e); - }), se(tr, function(e) { - if (ze(this.expressions, e)) return !0; - if (this.is_expr_pure(e)) return !1; - if (!this.tag) return !1; - this.may_throw = jn; - e = qe(this.tag, e); - return delete this.may_throw, e; - }), se(Zt, function(e) { - return (this.bcatch ? this.bcatch.may_throw(e) : ze(this.body, e)) || this.bfinally && this.bfinally.may_throw(e); - }), se(yi, function(e) { - return this.expression.may_throw(e) && !("typeof" == this.operator && this.expression instanceof Xi); - }), se(ai, function(e) { - return this.name.may_throw(e) || this.value && this.value.may_throw(e); - }), (se = function(e, n) { - e.DEFMETHOD("is_constant_expression", n); - })(Gn, Fn), se(Di, function(e) { - return Ce(this.elements, e); - }), se(ki, function(e) { - return this.left.is_constant_expression(e) && this.right.is_constant_expression(e) && ("in" != this.operator || bn(this.right)); - }), se(Ft, function(e) { - var n = this.extends; - return !(n && !c(n)) && Ce(this.properties, e); - }), se(Nt, function(e) { - return "string" == typeof this.key && (!this.value || this.value.is_constant_expression(e)); - }), se(ir, jn), se(_t, function(i) { - var r = this, o = !0, a = []; - return r.walk(new mr(function(e, n) { - if (!o) return !0; - if (e instanceof nt) return e === r ? void 0 : (a.push(e), n(), a.pop(), !0); - if (e instanceof Xi) { - if (r.inlined || e.redef) return !(o = !1); - if (r.variables.has(e.name)) return !0; - var t = e.definition(); - if (qn(t.scope, a)) return !0; - if (i && !t.redefined()) { - n = i.find_variable(e.name); - if (n ? n === t : t.undeclared) return o = "f", !0; - } - return !(o = !1); - } - return e instanceof Qi ? (yt(r) && Ln(a, function(e) { - return !(e instanceof vt) || yt(e); - }) && (o = !1), !0) : void 0; - })), o; - }), se(Ci, function(e) { - return Ce(this.properties, e); - }), se(Mi, function(e) { - return "string" == typeof this.key && this.value.is_constant_expression(e); - }), se(yi, function(e) { - return this.expression.is_constant_expression(e); - }), (se = function(e, n) { - e.DEFMETHOD("aborts", n); - })(Jn, Nn), se(Yt, Pn), se(rt, Fe), se(Xt, Fe), se(Gt, function() { - return this.alternative && Me(this.body) && Me(this.alternative) && this; - }); - var je = Bn([ "use asm", "use strict" ]); - function Pe(e, n, t) { - switch (e.body.length) { - case 0: - return t ? In.skip : ve(Qn, e); - - case 1: - var i = e.body[0]; - return M(i) ? n instanceof at && i instanceof $t ? e : i : e; - } - return e; - } - function Ne(e, n) { - n.option("rests") && (e.uses_arguments || e.rest instanceof $i && n.drop_fargs(e, n.parent()) && (e.argnames = e.argnames.concat(e.rest.elements), - e.rest = e.rest.rest)); - } - function Ie(e, n) { - if (!n.option("arrows")) return e; - Ne(e, n); - var t = H(e.value ? [ e.first_statement() ] : e.body, n); - switch (t.length) { - case 1: - var i = t[0]; - if (i instanceof Bt) { - e.body.length = 0, e.value = i.value; - break; - } - - default: - e.body = t, e.value = null; - } - return e; - } - e(Kn, function(e, n) { - return !n.option("directives") || je[e.value] && n.has_directive(e.value) === e ? e : ve(Qn, e); - }), e(Xn, function(e, n) { - return n.option("drop_debugger") ? ve(Qn, e) : e; - }), e(ot, function(e, n) { - return n.option("dead_code") && e.body instanceof Vt && n.loopcontrol_target(e.body) === e.body ? ve(Qn, e) : n.option("unused") && 0 == e.label.references.length ? e.body : e; - }), e(Ut, function(e, n) { - if (!n.option("dead_code")) return e; - var t, i = e.label; - return i && (t = n.loopcontrol_target(e), e.label = null, n.loopcontrol_target(e) === t ? Rn(i.thedef.references, e) : e.label = i), - e; - }), e(it, function(e, n) { - return e.body = H(e.body, n), e; - }), e(rt, function(e, n) { - return e.body = H(e.body, n), Pe(e, n.parent()); - }), e(_t, function(e, n) { - return Ne(e, n), e.body = H(e.body, n), e; - }), e(Et, Ie), e(St, Ie), e(Dt, function(n, e) { - Ne(n, e), n.body = H(n.body, e); - var t = e.parent(); - if (e.option("inline")) for (var i = 0; i < n.body.length; i++) { - var r = n.body[i]; - if (!(r instanceof Kn)) { - if (r instanceof Bt) { - if (i != n.body.length - 1) break; - var o = r.value; - if (!o || "Call" != o.TYPE) break; - if (o.is_expr_pure(e)) break; - var a = o.expression; - if (a instanceof Xi) { - if (n.name && n.name.definition() === a.definition()) break; - a = a.fixed_value(); - } - if (!(a instanceof Ct || a instanceof Dt)) break; - if (a.rest) break; - if (a.uses_arguments) break; - if (a === o.expression) { - if (a.parent_scope !== n) break; - if (!Ln(a.enclosed, function(e) { - return e.scope !== n; - })) break; - } - if (a.name && (t instanceof Ht || t instanceof ji) && t.value === e.self()) break; - if (a.contains_this()) break; - var s = a.argnames.length; - if (0 < s && e.option("inline") < 2) break; - if (s > n.argnames.length) break; - if (!Ln(n.argnames, function(e) { - return e instanceof Ui; - })) break; - if (!Ln(o.args, function(e) { - return !(e instanceof bi); - })) break; - for (var f = 0; f < s; f++) { - var c = o.args[f]; - if (!(c instanceof Xi)) break; - if (c.definition() !== n.argnames[f].definition()) break; - } - if (f < s) break; - for (;f < o.args.length && !o.args[f].has_side_effects(e); f++); - if (f < o.args.length) break; - if (s < n.argnames.length && !e.drop_fargs(n, t)) { - if (!e.drop_fargs(a, o)) break; - for (;a.argnames.push(a.make_var(Ui, a, "argument_" + s)), ++s < n.argnames.length; ); - } - return o.expression; - } - break; - } - } - return n; - }); - var He = Bn("arguments await yield"); - function Ye(e, n) { - for (var t = n.length; 0 <= --t; ) n[t] || (n[t] = ve(lr, e)); - } - function Re(e, n) { - var t = ve(Pt, e, e); - return t.name = n ? null : ve(Gi, e.name, e.name), t; - } - function Be(e, n) { - var t; - switch (e.CTOR) { - case zt: - t = Tt; - break; - - case qt: - t = At; - break; - - case Ct: - t = Dt; - break; - - case Mt: - t = Ot; - } - var i = ve(t, e, e); - return i.name = n ? null : ve(Wi, e.name, e.name), i; - } - function Le(n, t) { - n.walk(new mr(function(e) { - return e instanceof Bt ? (t(e), !0) : e instanceof vt && e !== n || void 0; - })); - } - function Ue(e) { - var n = Object.create(null); - return Le(e, function(e) { - e = e.value; - (e = e && e.tail_node()) instanceof Xi && (e = e.definition().id, n[e] = (n[e] || 0) + 1); - }), n; - } - function Ve(e, n, t) { - return e.bool_fn + (n[e.id] || 0) === e.references.length - e.replaced && !t.exposed(e); - } - function We(e, i) { - Le(e, function(e) { - e.in_bool = !0; - var n, t = e.value; - t && ((n = tn(i, t)) ? n instanceof Gn || (t = t.drop_side_effect_free(i), e.value = t ? J(e.value, [ t, ve(or, e.value, { - value: 1 - }) ]) : ve(or, e.value, { - value: 1 - })) : (t = t.drop_side_effect_free(i), e.value = t ? J(e.value, [ t, ve(or, e.value, { - value: 0 - }) ]) : null)); - }); - } - function Ge(e, n) { - if (!e.name || !n.option("ie")) return 1; - e = e.name.definition(); - return !n.exposed(e) && Ln(e.references, function(e) { - return !(e instanceof Xi); - }); - } - function Je(e, n, t, i) { - for (var r = e.length, o = [], a = !1, s = 0; s < r; s++) { - var f = e[s], c = i && f instanceof bi ? i(f, n, t) : f.drop_side_effect_free(n, t); - c !== f && (a = !0), c && (o.push(c), t = !1); - } - return o.length ? a ? o : e : null; - } - function Xe(e, n, t) { - var i = e.expression; - return i.is_string(n) ? i.drop_side_effect_free(n, t) : e; - } - function Ke(e) { - return e instanceof bi ? ve(Di, e, { - elements: [ e ] - }) : e; - } - function Qe(o, n) { - var e, t = yt(n), i = wt(n), r = !1; - if (t && o.option("arrows") ? n.value ? i && !yn(o, n.value) || (n.value = n.value.drop_side_effect_free(o)) : r = !0 : (n instanceof Tt || n instanceof Dt) && (r = !n.name || (e = n.name.definition()).references.length == e.replaced), - r && (n.process_expression(!1, function(e) { - var n = e.value; - if (n) { - if (i && !yn(o, n)) return e; - n = n.drop_side_effect_free(o, !0); - } - return n ? ve(et, e, { - body: n - }) : ve(Qn, e); - }), Le(n, function(e) { - var n = e.value; - n && (i && !yn(o, n) || (e.value = n.drop_side_effect_free(o))); - })), i && o.option("awaits")) { - r && n.process_expression("awaits", function(e) { - var n = e.body; - if (n instanceof Ti) { - if (yn(o, n.expression)) { - if (!(n = n.expression.drop_side_effect_free(o, !0))) return ve(Qn, e); - e.body = n; - } - } else if (n instanceof hi) { - for (var t = n.expressions, i = t.length; 0 <= --i; ) { - var r = t[i]; - if (!(r instanceof Ti)) break; - if (!yn(o, r.expression)) break; - if (t[i] = r.expression.drop_side_effect_free(o)) break; - } - switch (i) { - case -1: - return ve(Qn, e); - - case 0: - e.body = t[0]; - break; - - default: - t.length = i + 1; - } - } - return e; - }); - var a, s = !r && n.name || t && n.value && !yn(o, n.value), f = new mr(function(e) { - return !!s || (f.parent() === n && e.may_throw(o) || e instanceof Ti || e instanceof dt ? s = !0 : e instanceof Bt ? e.value && !yn(o, e.value) ? s = !0 : void 0 : e instanceof vt && e !== n || void 0); - }); - if (n.walk(f), !s) { - switch (n.CTOR) { - case St: - a = Et; - break; - - case Tt: - a = Dt; - break; - - case At: - a = Ot; - } - return ve(a, n, n); - } - } - return r && n.clone(); - } - function Ze(e, n, t) { - for (var i = [], r = [], o = e.properties, a = 0; a < o.length; a++) { - var s = o[a]; - if (s.key instanceof Gn && i.push(s.key), s.static && s.value && s instanceof It && s.value.has_side_effects(n)) { - if (s.value.contains_this()) return e; - r.push(s.value); - } - } - var f = e.extends; - if (f && ((f = !c(f = f instanceof Xi ? f.fixed_value() : f)) || i.unshift(e.extends)), - i = Je(i, n, t), r = Je(r, n, t = i ? !1 : t), !i) { - if (!f && !r) return null; - i = []; - } - return f && ((f = Re(e, !0)).properties = [], i.length && f.properties.push(ve(Ht, e, { - key: J(e, i), - value: ve(Dt, e, { - argnames: [], - body: [] - }).init_vars(f) - })), i = [ f ]), r && i.push(ve(pi, e, { - expression: ve(Et, e, { - argnames: [], - body: [], - value: J(e, r) - }).init_vars(e.parent_scope), - args: [] - })), J(e, i); - } - function en(n, e, t) { - t = t || Ut; - var i = !1, r = new mr(function(e) { - return !!(i || e instanceof vt) || (e instanceof t && r.loopcontrol_target(e) === n ? i = !0 : void 0); - }); - return e instanceof ot && r.push(e), r.push(n), n.body.walk(r), i; - } - function nn(e, n, t) { - if (e instanceof ki) if (e.left instanceof rr) { - if (e.right instanceof wi && "typeof" == e.right.operator) { - var i = e.right.expression; - if (ge(i)) { - var r, o, a, s = "undefined" == e.left.value; - switch (e.operator) { - case "==": - r = s ? t : n; - break; - - case "!=": - r = s ? n : t; - break; - - default: - return; - } - r && (o = i.definition(), a = new mr(function(e) { - if (e instanceof vt) { - var n = a.parent(); - return n instanceof pi && n.expression === e ? void 0 : !0; - } - e instanceof Xi && e.definition() === o && (e.defined = !0); - }), r.walk(a)); - } - } - } else switch (e.operator) { - case "&&": - nn(e.left, n), nn(e.right, n); - break; - - case "||": - nn(f(e.left), t), nn(f(e.right), t); - } - function f(e) { - if (e instanceof ki) switch (e.operator) { - case "==": - return (e = e.clone()).operator = "!=", e; - - case "!=": - return (e = e.clone()).operator = "==", e; - } - } - } - function tn(e, n, t) { - return !!n.truthy || !(n.falsy && !t) && (!!n.is_truthy() || n.evaluate(e, !0)); - } - function rn(e, n) { - var t, i = 0, r = !1, o = e.self(); - if (!Zn(o)) for (;;) { - if (t = o, (o = e.parent(i++)) instanceof ki) { - var a = o.operator; - if (!we[a]) return; - var s = o.left; - if (s === t) continue; - if (f(s)) switch (a) { - case "&&": - n[r ? "falsy" : "truthy"] = !0; - break; - - case "||": - case "??": - n[r ? "truthy" : "falsy"] = !0; - } - } else if (o instanceof Ei) { - a = o.condition; - if (a === t) continue; - if (f(a)) switch (t) { - case o.consequent: - n[r ? "falsy" : "truthy"] = !0; - break; - - case o.alternative: - n[r ? "truthy" : "falsy"] = !0; - } - } else { - if (o instanceof Rt) break; - if (o instanceof Gt) break; - if (o instanceof hi) { - if (o.expressions[0] === t) continue; - } else if (o instanceof et) break; - } - return; - } - for (;;) { - if (t = o, (o = e.parent(i++)) instanceof rt) { - if (o.body[0] === t) continue; - } else if (o instanceof Gt && f(o.condition)) switch (t) { - case o.body: - n[r ? "falsy" : "truthy"] = !0; - break; - - case o.alternative: - n[r ? "truthy" : "falsy"] = !0; - } - return; - } - function f(e) { - return n.equivalent_to(e) || e instanceof wi && ("!" == e.operator && (n.equivalent_to(e.expression) && (r = !0))); - } - } - function on(r) { - return function(n, t) { - var i = !1; - return this.definitions.forEach(function(e) { - e.value && (i = !0), e.name.match_symbol(function(e) { - e instanceof Hi && t.push(ve(ai, e, { - name: e, - value: r(n, e) - })); - }, !0); - }), i; - }; - } - function an(e) { - return "arguments" != e.name && e.orig.length < (e.orig[0] instanceof Wi ? 3 : 2); - } - function sn(e, n) { - if (e.exposed(n)) return !0; - for (var t = n.scope.resolve(), i = n.scope; i !== t; ) if ((i = i.parent_scope).var_names()[n.name]) return !0; - } - function fn(e) { - return ve(oi, e, { - definitions: e.definitions.map(function(e) { - return ve(ai, e, { - name: e.name.convert_symbol(Li, function(e, n) { - var t = e.definition(); - t.orig[t.orig.indexOf(n)] = e; - e = t.scope.resolve(); - t.scope !== e && ((t.scope = e).variables.set(t.name, t), e.enclosed.push(t), e.var_names()[t.name] = !0); - }), - value: e.value - }); - }) - }); - } - function cn(e, n) { - if (!n.fixed_value()) return !1; - n = n.definition(); - return an(n) && kn(n) && !sn(e, n); - } - function un(e, n) { - return n.option("varify") && Ln(e.definitions, function(e) { - return !e.name.match_symbol(function(e) { - if (e instanceof Hi) return !cn(n, e); - }, !0); - }) ? fn(e) : e; - } - function ln(e, n) { - if (n.option("optional_chains") && e.terminal) do { - var t = e.expression; - if (e.optional) { - var i = tn(n, t, !0); - if (null == i) return ve(wi, e, { - operator: "void", - expression: t - }).optimize(n); - i instanceof Gn || (e.optional = !1); - } - } while (("Call" == (e = t).TYPE || e instanceof mi) && !e.terminal); - } - function pn(e) { - var n = e.expression; - if (!(n instanceof hi)) return e; - var t = n.expressions.slice(), n = e.clone(); - return n.expression = t.pop(), t.push(n), J(e, t); - } - function dn(e, t, n) { - var i = e.expression, r = i instanceof Xi ? i.fixed_value() : i; - if (r instanceof _t && (!r.uses_arguments && !r.pinned() && !(n && n.indexOf(r) < 0) && Ln(s = e.args, function(e) { - return !(e instanceof bi); - }))) { - var o = r.argnames, i = r === i && !r.name; - if (r.rest) { - if (!i || !t.option("rests")) return; - for (var a = o.length, s = s.slice(0, a); s.length < a; ) s.push(ve(ur, e).optimize(t)); - s.push(ve(Di, e, { - elements: e.args.slice(a) - })), o = o.concat(r.rest), r.rest = null; - } else s = s.slice(), o = o.slice(); - for (var f = 0, c = 0, u = i && t.option("default_values"), l = i && t.drop_fargs(r, e) ? function(e, n) { - return !e || (e instanceof $i ? 0 == e.elements.length && !e.rest && n instanceof Di : e instanceof qi ? 0 == e.properties.length && !e.rest && n && !n.may_throw_on_access(t) : e.__unused); - } : Fn, p = [], d = 0; d < s.length; d++) { - var h = o[d]; - if (u && h instanceof li && s[d].is_defined(t) && (o[d] = h = h.name), !h || "__unused" in h) { - var v = s[d].drop_side_effect_free(t); - if (l(h)) { - h && o.splice(d, 1), s.splice(d, 1), v && p.push(v), d--; - continue; - } - if (v) p.push(v), s[f++] = J(e, p), p = []; else if (h) { - if (!p.length) { - s[f++] = ve(or, s[d], { - value: 0 - }); - continue; - } - s[f++] = J(e, p), p = []; - } - } else { - if (l(h, s[d])) { - v = s[d].drop_side_effect_free(t); - o.splice(d, 1), s.splice(d, 1), v && p.push(v), d--; - continue; - } - p.push(s[d]), s[f++] = J(e, p), p = []; - } - c = f; - } - for (;d < o.length; d++) l(o[d]) && o.splice(d--, 1); - r.argnames = o, s.length = c, e.args = s, p.length && (r = J(e, p), s.push(s.length < o.length ? ve(wi, e, { - operator: "void", - expression: r - }) : r)); - } - } - function hn(t, i, e, n) { - if (n instanceof ki && ("&&" == n.operator || "||" == n.operator) && n.right instanceof Si && "=" == n.right.operator && n.right.left instanceof Xi && n.right.left.definition() === i && !e.has_side_effects(t) && r(n.left) && r(n.right.right)) return i.replaced++, - "&&" == n.operator ? ve(Ei, n, { - condition: n.left, - consequent: n.right.right, - alternative: e - }) : ve(Ei, n, { - condition: n.left, - consequent: e, - alternative: n.right.right - }); - function r(e) { - if (!e.has_side_effects(t)) { - var n = !1; - return e.walk(new mr(function(e) { - return !!n || (e instanceof Xi && e.definition() === i ? n = !0 : void 0); - })), !n; - } - } - } - vt.DEFMETHOD("merge_variables", function(l) { - if (l.option("merge_vars")) { - var p, d, h = {}, v = this, a = [], s = [], f = 0, m = new Un(), _ = Object.create(null), c = Object.create(null), g = new mr(function(i, e) { - if (i instanceof Si) { - var n = i.left, t = i.right; - if (n instanceof Oi) { - t.walk(g); - var r = new mr(function(e) { - if (!(e instanceof Oi)) return e instanceof li ? (x(), e.value.walk(g), k(), e.name.walk(r)) : e instanceof zi ? e.key instanceof Gn ? (x(), - (h.block = e).key.walk(g), e.value.walk(r), k()) : e.value.walk(r) : e instanceof Xi ? E(e) : e.walk(g), - !0; - }); - return n.walk(r), !0; - } - return we[i.operator.slice(0, -1)] ? (n.walk(g), x(), t.walk(g), n instanceof Xi && E(n), - k(), !0) : n instanceof Xi ? ("=" != i.operator && E(n, !0), t.walk(g), E(n), !0) : void 0; - } - if (i instanceof ki) return we[i.operator] ? (i.left.walk(g), x(), i.right.walk(g), - k(), !0) : void 0; - var o, a; - if (i instanceof Vt) return (o = g.loopcontrol_target(i)) instanceof at || S(o), - !0; - if (i instanceof pi) { - n = (f = i.expression).tail_node(); - return D(n) ? (f !== n && f.expressions.slice(0, -1).forEach(function(e) { - e.walk(g); - }), i.args.forEach(function(e) { - e.walk(g); - }), n.walk(g), !0) : (e(), u(f)); - } - if (i instanceof Ei) return i.condition.walk(g), x(), i.consequent.walk(g), k(), - x(), i.alternative.walk(g), k(), !0; - if (i instanceof Wt) return (o = g.loopcontrol_target(i)) instanceof ft && S(o), - !0; - if (i instanceof ft) { - x(), h.block = i, h.loop = !0; - var s = h; - return i.body.walk(g), h.inserted === i && (h = s), i.condition.walk(g), k(), !0; - } - if (i instanceof ut) return i.init && i.init.walk(g), x(), h.block = i, h.loop = !0, - i.condition && i.condition.walk(g), i.body.walk(g), i.step && i.step.walk(g), k(), - !0; - if (i instanceof lt) return i.object.walk(g), x(), h.block = i, h.loop = !0, i.init.walk(g), - i.body.walk(g), k(), !0; - if (i instanceof Gt) return i.condition.walk(g), x(), i.body.walk(g), k(), i.alternative && (x(), - i.alternative.walk(g), k()), !0; - if (i instanceof ot) { - x(), h.block = i; - s = h; - return i.body.walk(g), h.inserted === i && (h = s), k(), !0; - } - if (i instanceof vt) return x(), (h.block = i) === v && (d = h), i instanceof _t && (i.name && (_[i.name.definition().id] = !1), - r = i.uses_arguments && !g.has_directive("use strict") ? function(e) { - e instanceof Ui && (_[e.definition().id] = !1); - } : function(e) { - e instanceof Ui && E(e); - }, a = new mr(function(e) { - if (e instanceof Hi && (_[e.definition().id] = !1), e instanceof Xi) { - var n = e.definition(), t = i.variables.get(e.name); - return t && (t === n || n.undeclared || i.parent_scope.find_variable(e.name) === n) ? (_[n.id] = !1, - _[t.id] = !1) : (t = h, k(), E(e, !0), h = t), !0; - } - }), i.argnames.forEach(function(e) { - e.mark_symbol(r, a); - }), i.rest && i.rest.mark_symbol(r, a)), kt(i, g), k(), !0; - if (i instanceof gi) { - var f = i.expression; - return i.optional ? (f.walk(g), x(), i.property.walk(g), k()) : e(), u(f); - } - if (i instanceof Jt) { - i.expression.walk(g); - s = h; - return i.body.forEach(function(e) { - e instanceof Kt || (e.expression.walk(g), s === h && x()); - }), h = s, i.body.forEach(function(e) { - x(), h.block = i; - var n = h; - tt(e, g), h.inserted === i && (h = n), k(); - }), !0; - } - if (i instanceof Yi || i instanceof Bi) return !(_[i.definition().id] = !1); - if (i instanceof Xi) return E(i, !0), !0; - if (i instanceof Zt) { - f = p, s = h; - return tt(p = i, g), h = s, i.bcatch && (i.bcatch.argname && i.bcatch.argname.mark_symbol(function(e) { - e instanceof Ji && (e = e.definition(), _[e.id] = !1, (e = e.redefined()) && (_[e.id] = !1)); - }, g), i.bfinally || (p = f) ? tt(i.bcatch, g) : (x(), tt(i.bcatch, g), k())), p = f, - h = s, i.bfinally && i.bfinally.walk(g), !0; - } - if (i instanceof yi) { - if (!wr[i.operator]) return; - var c = i.expression; - return c instanceof Xi ? (E(c, !0), !0) : void 0; - } - if (i instanceof ai) { - c = i.value; - return c ? c.walk(g) : c = h.block instanceof lt && h.block.init === g.parent(), - i.name.mark_symbol(c ? function(e) { - if (e instanceof Hi) return e instanceof Li ? E(e) : _[e.definition().id] = !1, - !0; - } : function(e) { - if (e instanceof Hi) { - var n = e.definition().id; - return e instanceof Li ? n in _ ? _[n] && _[n].push(e) : m.add(n, e) : _[n] = !1, - !0; - } - }, g), !0; - } - return i instanceof ct ? (x(), h.block = i, h.loop = !0, e(), k(), !0) : void 0; - function u(e) { - return !l.option("ie") || (e = vi(e)) instanceof Xi && e.walk(g), !0; - } - }); - g.directives = Object.create(l.directives), v.walk(g); - for (var e = Object.create(null); a.length && s.length; ) { - var n = a.pop(), t = n.definition; - if (t.id in c && _[t.id]) { - for (var i = { - start: _[t.id].start - }; t.id in e; ) t = e[t.id]; - i.end = _[t.id].end; - var r = []; - do { - var o = s.pop(); - if (o && !(o.index > n.index)) { - var u = o.definition.id, b = _[u]; - if (b) { - if (i.start.block === b.start.block && A(i, b) && (!i.start.loop && kn(t) || A(b, i)) && (!l.option("webkit") || le(t) === le(o.definition)) && Ln(b, function(e) { - return e.scope.find_variable(t.name) === t; - })) { - var y = [], w = []; - b.forEach(function(e) { - e.thedef = t, e.name = t.name, (e instanceof Xi ? w : y).push(e); - }), t.orig = y.concat(t.orig), t.references = w.concat(t.references), t.fixed = o.definition.fixed && t.fixed, - e[u] = t; - break; - } - r.unshift(o); - } - } - } while (s.length); - r.length && (s = s.concat(r)); - } - } - } - function x() { - h = Object.create(h); - } - function k() { - h = Object.getPrototypeOf(h); - } - function E(e, n) { - var t, i, r = e.definition(), o = h; - if (p && (x(), o = h, k()), r.id in _) { - if (!(i = _[r.id])) return; - if (i.start.block !== o.block) return _[r.id] = !1; - if (i.push(e), i.end = o, r.id in c) s[c[r.id]] = null; else if (!n) return; - } else { - if ((t = v.variables.get(r.name)) !== r) return t && d === o && (_[t.id] = !1), - _[r.id] = !1; - if (l.exposed(r) || He[e.name]) return _[r.id] = !1; - if ((i = m.get(r.id) || []).push(e), _[r.id] = i, !n) return i.start = o, a.push({ - index: f++, - definition: r - }); - if (o.block !== v) return _[r.id] = !1; - i.start = d; - } - c[r.id] = s.length, s.push({ - index: f++, - definition: r - }); - } - function S(e) { - for (var n = []; ;) { - if (Vn(h, "block")) { - var t = h.block; - if ((t = t instanceof ot ? t.body : t) === e) break; - } - n.push(h), k(); - } - for (h.inserted = h.block, x(); n.length; ) { - var i = n.pop(); - x(), Vn(i, "block") && (h.block = i.block), Vn(i, "loop") && (h.loop = i.loop); - } - } - function T(e, n) { - return e === n || e.isPrototypeOf(n); - } - function A(e, n) { - return T(e.start, e.end) || T(e.start, n.start); - } - }), vt.DEFMETHOD("drop_unused", function(S) { - if (S.option("unused")) { - var T = this, A = !(T instanceof mt) || S.toplevel.funcs, D = !(T instanceof mt) || S.toplevel.vars, O = /keep_assign/.test(S.option("unused")) ? Fn : function(e, n) { - var t, i = !1; - if (e instanceof Si ? !e.write_only && "=" != e.operator || (t = r(e.left, n)) : e instanceof yi && e.write_only && (t = r(e.expression, n)), - t instanceof Xi) { - n = t.definition(); - if (!o[n.id] && !S.exposed(n) && pe(t, S, i)) return t; - } - function r(e, n) { - if (e instanceof mi) { - var t = e.expression; - if (!t.may_throw_on_access(S, !0)) return i = !0, n && e instanceof gi && n.unshift(e.property), - r(t, n); - } else if (e instanceof Si && "=" == e.operator) { - e.write_only = "p"; - t = r(e.right); - return n ? (n.assign = e, t instanceof Xi ? t : e.left) : t; - } - return e; - } - }, $ = Object.create(null), o = Object.create(null), c = function(e) { - return (c = function e(n, t, i) { - var r = S.parent(t); - if (!r) return i; - n = r instanceof _t && qn(n, r.argnames); - return e(r, t + 1, n ? function(e) { - var n = i(e); - if (n) return n; - if (n = r.variables.get(e)) { - e = n.orig[0]; - if (e instanceof Ui || e instanceof Wi) return n; - } - } : r.variables ? function(e) { - return i(e) || r.variables.get(e); - } : i); - }(T, 0, Mn))(e); - }, z = Object.create(null), u = [], q = Object.create(null), l = Object.create(null), p = Object.create(null), C = Object.create(null); - T instanceof mt && S.top_retain && T.variables.each(function(e) { - !S.top_retain(e) || e.id in q || (q[e.id] = !0, u.push(e)); - }); - var d = new Un(), h = new Un(), M = this; - (v = new mr(function(s, e) { - if (s instanceof _t && s.uses_arguments && !v.has_directive("use strict") && s.each_argname(function(e) { - e = e.definition(); - e.id in q || (q[e.id] = !0, u.push(e)); - }), s !== T) { - if (M === T) { - if (s instanceof jt) { - var t = s.name.definition(); - A && !t.exported || t.id in q || (q[t.id] = !0, u.push(t)), s.extends && s.extends.walk(v); - var i = !1; - return v.parent() instanceof fi && (i = !0, o[t.id] = !0), s.properties.forEach(function(e) { - var n; - e.key instanceof Gn && e.key.walk(v), e.value && (i || e instanceof It && e.static ? (n = M, - M = s, e.value.walk(v), M = n) : h.add(t.id, e.value)); - }), !0; - } - if (s instanceof $t) { - t = s.name.definition(); - if (A && !t.exported || t.id in q || (q[t.id] = !0, u.push(t)), h.add(t.id, s), - !(v.parent() instanceof fi)) return !0; - o[t.id] = !0; - } - if (s instanceof ti) return s.definitions.forEach(function(i) { - var r = i.value, o = r && (i.name instanceof Oi || r.has_side_effects(S)), a = o && "=" == r.tail_node().operator; - i.name.mark_symbol(function(e) { - if (e instanceof Hi) { - var n, t = e.definition(); - return C[t.id] = (C[t.id] || 0) + 1, s instanceof oi && t.orig[0] instanceof Ji && ((n = t.redefined()) && (C[n.id] = (C[n.id] || 0) + 1)), - t.id in q || D && !t.exported && (s instanceof ii ? !t.redefined() : !t.const_redefs) && (s instanceof oi || an(t)) || (q[t.id] = !0, - u.push(t)), r && (o ? a && g(t, e, p[t.id]) : h.add(t.id, r), d.add(t.id, i)), !0; - } - }, v), o && r.walk(v); - }), !0; - if (s instanceof Ui) { - t = s.definition(); - return C[t.id] = (C[t.id] || 0) + 1, d.add(t.id, s), !0; - } - if (s instanceof Ri) return (t = s.definition()).id in q || D && an(t) || (q[t.id] = !0, - u.push(t)), !0; - } - return r(s, e, !0); - } - })).directives = Object.create(S.directives), T.walk(v); - var F = S.option("keep_fnames") ? Fn : S.option("ie") ? function(e) { - return !S.exposed(e) && e.references.length == e.replaced; - } : function(e) { - return !(e.id in q) || !(e.orig.length - e.eliminated < 2) && (e.orig[1] instanceof Ui || Ln(e.references, function(e) { - return !e.in_arg; - })); - }; - S.option("ie") && h.each(function(e, n) { - n in q || e.forEach(function(e) { - e.walk(new mr(function(e) { - return e instanceof Dt && e.name && !F(e.name.definition()) ? (e.walk(v), !0) : e instanceof vt || void 0; - })); - }); - }); - for (var v = new mr(r), e = 0; e < u.length; e++) { - var n = h.get(u[e].id); - n && n.forEach(function(e) { - e.walk(v); - }); - } - Object.keys($).forEach(function(e) { - var n, t = $[e]; - t ? (t = t.reduce(function(n, e) { - return e.forEach(function(e) { - Hn(n, e); - }), n; - }, []), n = (d.get(e) || []).filter(function(n) { - return Cn(n instanceof yi ? function(e) { - return e === n; - } : function(e) { - return e === n || !(e instanceof yi) && i(e) === i(n); - }, t); - }), t.length == n.length ? $[e] = n : delete $[e]) : delete $[e]; - }); - var j = [], P = [], N = [], I = [], H = new _r(function(i) { - if (i instanceof li) return w(H, i); - if (i instanceof Oi && i.rest && (i.rest = i.rest.transform(H)), i instanceof $i) { - for (var e = !i.rest, n = i.elements.length; 0 <= --n; ) { - var t = i.elements[n].transform(H); - t ? (i.elements[n] = t, e = !1) : e ? i.elements.pop() : i.elements[n] = ve(lr, i.elements[n]); - } - return i; - } - if (i instanceof qi) { - var r = []; - return i.properties.forEach(function(e) { - var n, t = !1; - e.key instanceof Gn && (e.key = e.key.transform(Y), t = e.key.has_side_effects(S)), - (t || i.rest) && ((n = e.value) instanceof li ? n.name : n) instanceof Hi ? (e.value = e.value.transform(Y), - r.push(e)) : (n = !(n = e.value.transform(H)) && i.rest ? e.value instanceof $i ? ve($i, e.value, { - elements: [] - }) : ve(qi, e.value, { - properties: [] - }) : n) && (e.value = n, r.push(e)); - }), i.properties = r, i; - } - return i instanceof Hi ? i.definition().id in q ? i : null : void 0; - }), Y = new _r(function(d, n, e) { - var t, i, r, h = Y.parent(); - if (D) { - var o, a, s = [], f = O(d, s); - if (f) { - if (a = d, i = (t = f).definition(), (!(r = q[i.id]) || a[a instanceof Si ? "left" : "expression"] === t && (r === t && i.references.length - i.replaced == 1 || U(i, a) < 0)) && (d instanceof Si && (o = V(d), - !0 === d.write_only && (o = o.drop_side_effect_free(S))), o = o || ve(or, d, { - value: 0 - })), o) switch (!s.assign || (a = s.assign.drop_side_effect_free(S)) && (a.write_only = !0, - s.unshift(a)), h instanceof hi && h.tail_node() !== d && !o.has_side_effects(S) || s.push(o), - s.length) { - case 0: - return In.skip; - - case 1: - return me(0, h, d, s[0].transform(Y)); - - default: - return J(d, s.map(function(e) { - return e.transform(Y); - })); - } - } else if (d instanceof xi && d.expression instanceof Xi && U(d.expression.definition(), d) < 0) return ve(wi, d, { - operator: "+", - expression: d.expression - }); - } - if (d instanceof pi && N.push(d), M === T) { - if (A && d !== T && d instanceof jt) { - var c = d.name.definition(); - if (!(c.id in q)) return (R(d.name, "Dropping unused class {name}"), c.eliminated++, - n(d, Y), h instanceof fi) ? Re(d, !0) : (k = (k = d.drop_side_effect_free(S, !0)) === d ? Re(d, !0) : k) ? ve(et, d, { - body: k - }) : e ? In.skip : ve(Qn, d); - } - if (d instanceof Pt && d.name && F(d.name.definition()) && P.push(d), d instanceof _t) { - if (A && d !== T && d instanceof $t) if (!((c = d.name.definition()).id in q)) return R(d.name, "Dropping unused function {name}"), - c.eliminated++, h instanceof fi ? (E(), Be(d, !0)) : e ? In.skip : ve(Qn, d); - if (d instanceof bt && d.name && F(d.name.definition()) && P.push(d), !(d instanceof gt)) { - d.rest && ((o = d.rest.transform(H)) instanceof Oi && !o.rest && (!d.uses_arguments || Y.has_directive("use strict")) && (o instanceof $i ? 0 == o.elements.length && (o = null) : 0 == o.properties.length && (o = null)), - d.rest = o); - for (var u = d.argnames, l = S.drop_fargs(d, h) && !d.rest, p = l ? -1 : d.length(), v = u.length; 0 <= --v; ) (f = u[v]) instanceof Ui ? (c = f.definition()).id in q ? (l = !1, - U(c, f) < 0 && (f.__unused = null)) : l ? (R(f, "Dropping unused function argument {name}"), - u.pop()) : f.__unused = !0 : f.transform(H) ? l = !1 : l ? (R(f.name, "Dropping unused default argument {name}"), - u.pop()) : p < v ? (R(f.name, "Dropping unused default argument assignment {name}"), - f.name.__unused = !0, u[v] = f.name) : (R(f.name, "Dropping unused default argument value {name}"), - f.value = ve(or, f, { - value: 0 - })); - I.push(d); - } - } - if (d instanceof ei && d.argname instanceof Oi && d.argname.transform(H), d instanceof ti && !(h instanceof lt && h.init === d)) { - var m = [], _ = [], g = [], b = [], y = 0, w = d instanceof oi; - switch (d.definitions.forEach(function(e) { - e.value && (e.value = e.value.transform(Y)); - var n = e.value; - if (e.name instanceof Oi) { - var t = W(e.name, n, function(e) { - return !D || e.definition().id in q || l(e) || w && !pe(e) ? e : null; - }, !0); - t.name ? (e = ve(ai, e, { - name: t.name, - value: n = t.value - }), p()) : t.value && b.push(t.value); - } else { - var i, r, o, a, s, f = e.name.definition(), c = w ? pe(e.name) : an(f); - if (!c || !D || f.id in q) if (n && U(f, e) < 0 && ((n = n.drop_side_effect_free(S)) && (Gn.warn("Side effects in last use of variable {name} [{file}:{line},{col}]", B(e.name)), - b.push(n)), n = null, j.push(e)), n || d instanceof ri) if (S.option("functions") && !S.option("ie") && c && 1 == C[f.id] && 0 == f.assignments && n instanceof bt && !ue(f) && !yt(n) && (a = n, - 0 == (s = f.references).length ? a === e.name.fixed_value() : Ln(s, function(e) { - return a === e.fixed_value(); - })) && (o = n, w && !S.has_directive("use strict") && o instanceof Dt ? h instanceof it || h instanceof ut && h.init === d || h instanceof Gt : h instanceof vt) && !1 !== (i = function(t, i) { - if (!t.name) return null; - var r, e = t.name.definition(); - if (1 < e.orig.length) return null; - if (0 < e.assignments) return !1; - if (e.name == i) return e; - switch (i) { - case "await": - r = wt; - break; - - case "yield": - r = xt; - } - return Ln(e.references, function(e) { - var n = e.scope; - if (n.find_variable(i) === f) { - if (r) do { - if (n = n.resolve(), r(n)) return; - } while (n !== t && (n = n.parent_scope)); - return 1; - } - }) && e; - }(n, e.name.name))) { - switch (Gn.warn("Declaring {name} as function [{file}:{line},{col}]", B(e.name)), - n.CTOR) { - case Tt: - r = zt; - break; - - case At: - r = qt; - break; - - case Dt: - r = Ct; - break; - - case Ot: - r = Mt; - } - t = ve(r, e, n); - t.name = ve(Vi, e.name, e.name); - var u = e.name.scope.resolve().def_function(t.name); - i && i.forEach(function(e) { - e.name = u.name, e.thedef = u, e.reference(); - }), m.push(t); - } else c && 1 < C[f.id] && !(h instanceof si) && f.orig.indexOf(e.name) > f.eliminated && (C[f.id]--, - y++), p(); else h instanceof si ? p() : c && 1 < C[f.id] ? (Gn.info("Dropping declaration of variable {name} [{file}:{line},{col}]", B(e.name)), - C[f.id]--, f.eliminated++) : _.push(e); else l(e.name) ? ((n = n && n.drop_side_effect_free(S)) && b.push(n), - 1 < C[f.id] ? (Gn.warn("Dropping duplicated declaration of variable {name} [{file}:{line},{col}]", B(e.name)), - C[f.id]--, f.eliminated++) : (e.value = null, _.push(e))) : ((n = n && !n.single_use && n.drop_side_effect_free(S)) ? (Gn.warn("Side effects in initialization of unused variable {name} [{file}:{line},{col}]", B(e.name)), - b.push(n)) : R(e.name, "Dropping unused variable {name}"), f.eliminated++); - } - function l(e) { - var n = e.definition(); - return n.orig[0] instanceof Ji && n.scope.resolve() === e.scope.resolve(); - } - function p() { - 0 < b.length && (0 == g.length ? m.push(ve(et, d, { - body: J(d, b) - })) : n ? (b.push(n), e.value = J(n, b)) : e.value = ve(wi, e, { - operator: "void", - expression: J(e, b) - }), b = []), g.push(e); - } - }), _.length) { - case 0: - if (0 == g.length) break; - if (g.length == y) { - [].unshift.apply(b, g.map(function(e) { - Gn.info("Dropping duplicated definition of variable {name} [{file}:{line},{col}]", B(e.name)); - var n = e.name.definition(), t = ve(Xi, e.name, e.name); - n.references.push(t); - t = ve(Si, e, { - operator: "=", - left: t, - right: e.value - }), e = U(n, e); - return 0 <= e && ($[n.id][e] = t), n.eliminated++, t; - })); - break; - } - - case 1: - if (0 == g.length) { - var x = _[0].name.definition().id; - if (x in z) { - d.definitions = _, z[x].init = d; - break; - } - } - - default: - d.definitions = _.concat(g), m.push(d); - } - return 0 < b.length && m.push(ve(et, d, { - body: J(d, b) - })), L(m, d, e); - } - if (d instanceof Si) return (n(d, Y), d.left instanceof Oi) ? (k = W(d.left, d.right, function(e) { - return e; - }, !0 === d.write_only)).name ? ve(Si, d, { - operator: d.operator, - left: k.name, - right: k.value - }) : k.value || (h instanceof hi && h.tail_node() !== d ? In.skip : ve(or, d, { - value: 0 - })) : d; - if (d instanceof ot && d.body instanceof ut) { - if (n(d, Y), d.body instanceof rt) { - var k = d.body; - return d.body = k.body.pop(), k.body.push(d), e ? In.splice(k.body) : k; - } - return d; - } - return d instanceof vt ? (E(), d) : d instanceof Ri ? !S.option("imports") || d.definition().id in q ? d : e ? In.skip : null : void 0; - } - function E() { - var e = M; - n(M = d, Y), M = e; - } - }, function(e, n) { - if (e instanceof rt) return Pe(e, Y.parent(), n); - if (e instanceof ut) return e.init instanceof rt && (r = e.init, e.init = r.body.pop(), - r.body.push(e)), e.init instanceof Ct ? ((r = r || ve(rt, e, { - body: [ e ] - })).body.splice(-1, 0, e.init), e.init = null) : e.init instanceof et ? e.init = e.init.body : Q(e.init) && (e.init = null), - r ? n ? In.splice(r.body) : r : e; - if (e instanceof pt) { - if (!D || !S.option("loops")) return; - if (!Q(e.body)) return; - var t = b(e); - if (!t) return; - var i = t.definition(); - if (i.id in q) return; - R(t, "Dropping unused loop variable {name}"), z[i.id] === e && delete z[i.id]; - var r = [], t = e.object.drop_side_effect_free(S); - return t && (Gn.warn("Side effects in object of for-in loop [{file}:{line},{col}]", t.start), - r.push(ve(et, e, { - body: t - }))), e.init instanceof ti && i.orig[0] instanceof Ji && r.push(e.init), L(r, e, n); - } - return e instanceof ui ? (e.properties && 0 == e.properties.length && (e.properties = null), - e) : e instanceof hi && !(1 < e.expressions.length) ? me(0, Y.parent(), e, e.expressions[0]) : void 0; - }); - Y.push(S.parent()), T.transform(Y), T instanceof _t && 1 == T.body.length && T.body[0] instanceof Kn && "use strict" == T.body[0].value && (T.body.length = 0), - j.forEach(function(e) { - e.value = null; - }), P.forEach(function(e) { - e.name = null; - }), N.forEach(function(e) { - dn(e, S, I); - }); - } - function R(e, n) { - Gn[0 < e.definition().references.length ? "info" : "warn"](n + " [{file}:{line},{col}]", B(e)); - } - function B(e) { - return { - name: e.name, - file: e.start.file, - line: e.start.line, - col: e.start.col - }; - } - function i(e) { - return e[e instanceof Si ? "right" : "value"]; - } - function L(e, n, t) { - switch (e.length) { - case 0: - return t ? In.skip : ve(Qn, n); - - case 1: - return e[0]; - - default: - return t ? In.splice(e) : ve(rt, n, { - body: e - }); - } - } - function m(e, n) { - return e.scope.resolve() === T && (e.fixed && n.fixed || ($[e.id] = !1), !1 !== $[e.id]); - } - function _(e, n) { - $[e.id] || ($[e.id] = []), n.fixed.assigns && Hn($[e.id], n.fixed.assigns); - } - function U(e, n) { - e = $[e.id]; - return e && e.indexOf(n); - } - function g(e, n, t) { - e.id in q || (n && t ? (q[e.id] = n, u.push(e)) : (l[e.id] = n, p[e.id] = t)); - } - function V(e) { - var n = e.right; - if (!e.write_only) return n; - if (!(n instanceof ki && we[n.operator])) return n; - if (!(n.left instanceof Xi)) return n; - if (!(e.left instanceof Xi)) return n; - e = e.left.definition(); - return n.left.definition() !== e || n.right.has_side_effects(S) ? n : (m(e, n.left) && _(e, n.left), - n.right); - } - function b(e) { - var n = e.init; - if (n instanceof ti) return (n = n.definitions[0].name) instanceof Hi && n; - for (;n instanceof mi; ) n = n.expression.tail_node(); - return n instanceof Xi ? n : void 0; - } - function r(e, n, t) { - e instanceof Si && e.left instanceof Xi && (i = e.left.definition()).scope.resolve() === T && d.add(i.id, e), - e instanceof yi && e.expression instanceof Xi && (i = e.expression.definition()).scope.resolve() === T && d.add(i.id, e); - var i, r = [], o = O(e, r); - if (o && ((f = o.definition()).scope.resolve() === T || T.variables.get(o.name) === f) && (!ue(f) || Ln(T.argnames, function(e) { - return !e.match_symbol(function(e) { - if (e instanceof Ui) { - e = e.definition(); - return e.references.length > e.replaced; - } - }, !0); - }))) { - if ("p" === e.write_only && e.right.may_throw_on_access(S, !0)) return; - var a, s = r.assign; - return s && (s.write_only = !0, s.walk(v)), r.forEach(function(e) { - e.walk(v); - }), e instanceof Si && (s = V(e), r = !1, t && !0 === e.write_only && !s.has_side_effects(S) ? h.add(f.id, s) : (s.walk(v), - r = "=" == s.tail_node().operator), e.left === o ? e.write_only && !r || g(f, o, p[f.id]) : (a = o.fixed_value()) && a.is_constant() || g(f, l[f.id], !0)), - m(f, o) && Sr(o, e) !== o && _(f, o), !0; - } - if (e instanceof pt) { - if (e.init instanceof Xi && M === T && ((a = e.init.definition().id) in z || (z[a] = e)), - !D || !S.option("loops")) return; - if (!Q(e.body)) return; - if (e.init.has_side_effects(S)) return; - if (!(o = b(e))) return; - if ((i = o.definition()).scope.resolve() !== T) { - o = c(o.name); - if (o === i || o && o.redefined() === i) return; - } - return e.object.walk(v), !0; - } - if (e instanceof Xi) return (f = e.definition()).id in q || (q[f.id] = !0, u.push(f)), - y(f.scope, e.scope) && (!(i = f.redefined()) || i.id in q || (q[i.id] = !0, u.push(i))), - m(f, e) && _(f, e), !0; - if (e instanceof vt) { - var f = M; - return M = e, n(), M = f, !0; - } - } - function w(e, n) { - if (n.value = n.value.transform(Y), !n.name.transform(e)) { - if (n.name instanceof Oi) return null; - e = n.value.drop_side_effect_free(S); - if (!e) return null; - R(n.name, "Side effects in default value of unused variable {name}"), n.name.__unused = null, - n.value = e; - } - return n; - } - function W(e, v, m, _) { - var g = new _r(function(r) { - if (r instanceof li) { - if (!(S.option("default_values") && v && v.is_defined(S))) { - var e = _; - _ = !1; - var n = w(g, r); - return _ = e, !n && _ && v && (v = v.drop_side_effect_free(S)), n; - } - r = r.name; - } - if (r instanceof $i) { - var e = _, t = v; - v instanceof Xi && (_ = !1, v = v.fixed_value()); - var i = v instanceof Di && v.elements, o = [], a = _ && [], s = 0; - if (r.elements.forEach(function(e, n) { - (v = i && i[n]) instanceof lr ? v = null : v instanceof bi && (_ && (a.length = s, - Ye(t, a), [].push.apply(a, i.slice(n)), t.elements = a), v = i = !1), (e = e.transform(g)) && (o[s] = e), - _ && v && (a[s] = v), !e && !v && _ && i || s++; - }), v = i && ve(Di, t, { - elements: i.slice(r.elements.length) - }), r.rest && (n = _, _ = !1, r.rest = r.rest.transform(S.option("rests") ? g : Y), - _ = n, r.rest && (o.length = s)), _ && (v = (v = v && !r.rest ? v.drop_side_effect_free(S) : v) instanceof Di ? v.elements : v instanceof hi ? v.expressions : v && [ v ]) && v.length && (a.length = s, - [].push.apply(a, v)), v = t, _ = e, i && a && (Ye(v, a), v.elements = a), !r.rest && (v instanceof Di || v && v.is_string(S))) switch (o.length) { - case 0: - return _ && (v = v.drop_side_effect_free(S)), null; - - case 1: - if (!_) break; - var f = o[0]; - if (!(f instanceof Ii)) break; - return v = ve(gi, r, { - expression: v, - property: ve(or, r, { - value: 0 - }) - }), f; - } - return Ye(r, o), r.elements = o, r; - } - if (r instanceof qi) { - var c, u, e = _, t = v; - v instanceof Xi && (_ = !1, v = v.fixed_value()), v instanceof Ci && (c = [], u = Object.create(null), - v.properties.forEach(function(e, n) { - if (e instanceof bi) return u = !1; - var t = e.key; - (t = t instanceof Gn ? t.evaluate(S, !0) : t) instanceof Gn ? u = !1 : !u || e instanceof Pi || (u[t] = e), - c[n] = t; - })), r.rest && (v = !1, r.rest = r.rest.transform(S.option("rests") ? g : Y)); - var l = Object.create(null), p = _ && Object.create(null), d = []; - if (r.properties.map(function(e) { - var n = e.key; - return n instanceof Gn && (e.key = n = n.transform(Y), n = n.evaluate(S, !0)), n instanceof Gn ? p = !1 : l[n] = !(n in l), - n; - }).forEach(function(e, n) { - var t, i = r.properties[n]; - e instanceof Gn ? (v = _ = !1, t = i.value.transform(g) || y(i.value)) : (_ = p && l[e], - (!(n = u && u[e]) || (v = n.value) instanceof gt) && (v = !1), (t = i.value.transform(g)) ? p && (p[e] = !1) : ((r.rest || b(i)) && (t = y(i.value)), - !p || e in p || (n ? (p[e] = n, null === v && (u[e] = b(n) && ve(Fi, n, { - key: n.key, - value: ve(or, n, { - value: 0 - }) - }))) : p[e] = !0)), v && (n.value = v)), t && (i.value = t, d.push(i)); - }), v = t, _ = e, p && c && (v.properties = In(v.properties, function(e, n) { - if (e instanceof bi) return e; - var t = c[n]; - if (t instanceof Gn) return e; - if (t in p) { - n = p[t]; - if (!n) return e; - if (n === e) return u[t] || In.skip; - } else if (r.rest) return e; - t = e.value.drop_side_effect_free(S); - return t ? (e.value = t, e) : b(e) ? ve(Fi, e, { - key: e.key, - value: ve(or, e, { - value: 0 - }) - }) : In.skip; - })), v && !r.rest) switch (d.length) { - case 0: - if (v.may_throw_on_access(S, !0)) break; - return _ && (v = v.drop_side_effect_free(S)), null; - - case 1: - if (!_) break; - var h = d[0]; - if (h.key instanceof Gn) break; - if (!(h.value instanceof Ii)) break; - return v = ve(gi, r, { - expression: v, - property: X(h.key, h) - }), h.value; - } - return r.properties = d, r; - } - return !(r = r instanceof lr ? null : m(r)) && _ && v && (v = v.drop_side_effect_free(S)), - r; - }); - return { - name: e.transform(g), - value: v - }; - function b(e) { - return e.key instanceof Gn && e.key.has_side_effects(S); - } - function y(e) { - return e instanceof li ? y(e.name) : e instanceof Oi ? (null === v ? v = ve(or, e, { - value: 0 - }) : v && (!0 === v.tail_node().write_only || v.may_throw_on_access(S, !0)) && (v = ve(Di, e, { - elements: v instanceof hi ? v.expressions : [ v ] - })), ve(qi, e, { - properties: [] - })) : (e.__unused = null, e); - } - } - }), vt.DEFMETHOD("hoist_declarations", function(a) { - var s, f, c, n, u, l, p, d, h, v, m; - a.has_directive("use asm") || (s = a.option("hoist_funs"), f = a.option("hoist_vars"), - c = this, f && (n = 0, c.walk(new mr(function(e) { - return 1 < n || (e instanceof si || (e instanceof vt && e !== c || (e instanceof oi ? (n++, - !0) : void 0))); - })), n <= 1 && (f = !1)), (s || f) && (u = Object.create(null), l = [], p = [], - d = new Un(), h = 0, v = new _r(function(e, n, t) { - if (e !== c) { - if (e instanceof Kn) return l.push(e), t ? In.skip : ve(Qn, e); - var i; - if (e instanceof $t) return s ? (i = v.parent()) instanceof si || i instanceof fi || i !== c && a.has_directive("use strict") ? e : (p.push(e), - t ? In.skip : ve(Qn, e)) : e; - if (e instanceof oi) { - if (!f) return e; - if ((i = v.parent()) instanceof si) return e; - if (!Ln(e.definitions, function(e) { - e = e.name; - return e instanceof Li && !u[e.name] && c.find_variable(e.name) === e.definition(); - })) return e; - e.definitions.forEach(function(e) { - d.set(e.name.name, e), ++h; - }); - var r = e.to_assignments(); - if (i instanceof lt && i.init === e) { - if (r) return r; - var o = e.definitions[0].name; - return ve(Xi, o, o); - } - return i instanceof ut && i.init === e ? r : r ? ve(et, e, { - body: r - }) : t ? In.skip : ve(Qn, e); - } - return e instanceof vt ? e : e instanceof Yi ? (u[e.name] = !0, e) : void 0; - } - }), c.transform(v), 0 < h && (m = [], c instanceof _t && c.each_argname(function(e) { - d.del(e.name); - }), d.each(function(e, n) { - (e = e.clone()).value = null, m.push(e), d.set(n, e); - }), 0 < m.length && (function e(n) { - for (;n.length; ) { - var t = n[0]; - if (t instanceof et) { - var i, r, o, a = t.body; - if (a instanceof Si && "=" == a.operator && (i = a.left) instanceof Ii && d.has(i.name)) { - if ((o = d.get(i.name)).value) break; - var s = a.right; - s instanceof hi && (s = s.clone()), o.value = s, Rn(m, o), m.push(o), n.shift(); - continue; - } - if (a instanceof hi && (r = a.expressions[0]) instanceof Si && "=" == r.operator && (i = r.left) instanceof Ii && d.has(i.name)) { - if ((o = d.get(i.name)).value) break; - o.value = r.right, Rn(m, o), m.push(o), t.body = J(a, a.expressions.slice(1)); - continue; - } - } - if (t instanceof Qn) n.shift(); else { - if (!(t instanceof rt) || e(t.body)) break; - n.shift(); - } - } - return n.length; - }(c.body), m = ve(oi, c, { - definitions: m - }), p.push(m))), c.body = l.concat(p, c.body))); - }), vt.DEFMETHOD("process_boolean_returns", Mn), Ct.DEFMETHOD("process_boolean_returns", function(e) { - var n; - e.option("booleans") && (n = Ue(this), Ve(this.name.definition(), n, e) && (e.parent() instanceof fi || We(this, e))); - }), Dt.DEFMETHOD("process_boolean_returns", function(e) { - if (e.option("booleans")) { - var n = Ue(this); - if (!this.name || Ve(this.name.definition(), n, e)) { - var t = e.parent(); - if (t instanceof Si) { - if ("=" != t.operator) return; - if (!((i = t.left) instanceof Xi)) return; - if (!Ve(i.definition(), n, e)) return; - } else if (t instanceof pi && t.expression !== this) { - var i, r = t.expression; - if (!((r = r instanceof Xi ? r.fixed_value() : r) instanceof _t)) return; - if (r.uses_arguments || r.pinned()) return; - if ((i = (i = r.argnames[t.args.indexOf(this)]) instanceof li ? i.name : i) instanceof Ui && !Ve(i.definition(), n, e)) return; - } else { - if ("Call" != t.TYPE) return; - e.pop(); - t = e.in_boolean_context(); - if (e.push(this), !t) return; - } - We(this, e); - } - } - }), nt.DEFMETHOD("var_names", function() { - var t = this._var_names; - return t || (this._var_names = t = Object.create(null), this.enclosed.forEach(function(e) { - t[e.name] = !0; - }), this.variables.each(function(e, n) { - t[n] = !0; - })), t; - }), vt.DEFMETHOD("make_var", function(e, n, t) { - var i = [ this ]; - n instanceof Hi && n.definition().references.forEach(function(e) { - var n = e.scope; - if (!qn(n, i)) for (;Hn(i, n), (n = n.parent_scope) && n !== this; ); - }); - for (var r = t = t.replace(/(?:^[^a-z_$]|[^a-z0-9_$])/gi, "_"), o = 0; !Ln(i, function(e) { - return !e.var_names()[r]; - }); o++) r = t + "$" + o; - var n = ve(e, n, { - name: r, - scope: this - }), a = this.def_variable(n); - return i.forEach(function(e) { - e.enclosed.push(a), e.var_names()[r] = !0; - }), n; - }), vt.DEFMETHOD("hoist_properties", function(r) { - var s, o, f; - function c(e, n, t) { - if (e instanceof Ii) { - var i = e.definition(); - return i.assignments == t ? !i.direct_access && (1 != i.escaped.depth && (i.references.length - i.replaced != t && (!i.single_use && (!o(i) && (e.fixed_value() === n && (n instanceof Ci && 0 < n.properties.length && Ln(n.properties, zn) && Ln(i.references, function(e) { - return e.fixed_value() === n; - }) && pe(e, r))))))) : void 0; - } - } - r.option("hoist_props") && !r.has_directive("use asm") && (o = (s = this) instanceof mt && r.top_retain || Fn, - f = Object.create(null), s.transform(new _r(function(t, e) { - if (t instanceof Si) { - if ("=" != t.operator) return; - if (!t.write_only) return; - if (!c(t.left, t.right, 1)) return; - e(t, this); - var i = new Un(), r = [], o = []; - return t.right.properties.forEach(function(e) { - var n = a(Li, t.left, e.key); - o.push(ve(ai, t, { - name: n, - value: null - })); - n = ve(Xi, t, { - name: n.name, - scope: s, - thedef: n.definition() - }); - n.reference(), r.push(ve(Si, t, { - operator: "=", - left: n, - right: e.value - })); - }), f[t.left.definition().id] = i, s.body.splice(s.body.indexOf(this.stack[1]) + 1, 0, ve(oi, t, { - definitions: o - })), J(t, r); - } - if (t instanceof vt) return t === s ? void 0 : t; - if (t instanceof ai && c(t.name, t.value, 0)) { - e(t, this); - var i = new Un(), n = []; - return t.value.properties.forEach(function(e) { - n.push(ve(ai, t, { - name: a(t.name.CTOR, t.name, e.key), - value: e.value - })); - }), f[t.name.definition().id] = i, In.splice(n); - } - function a(e, n, t) { - n = s.make_var(e, n, n.name + "_" + t); - return i.set(t, n.definition()), n; - } - })), s.transform(new _r(function(e, n) { - if (e instanceof mi) { - if (!(e.expression instanceof Xi)) return; - var t = f[e.expression.definition().id]; - if (!t) return; - t = t.get(e.get_property()), t = ve(Xi, e, { - name: t.name, - scope: e.expression.scope, - thedef: t - }); - return t.reference(), t; - } - if (e instanceof Xi && e.definition().id in f) return ve(Ci, e, { - properties: [] - }); - }))); - }), (se = function(e, n) { - e.DEFMETHOD("drop_side_effect_free", n); - })(Gn, Pn), se(gt, Nn), se(Di, function(e, n) { - n = Je(this.elements, e, n, Xe); - return n ? n === this.elements && Ln(n, function(e) { - return e instanceof bi; - }) ? this : J(this, n.map(Ke)) : null; - }), se(Si, function(e) { - var n = this.left; - if (n instanceof mi) { - var t = n.expression; - if (t.may_throw_on_access(e, !0)) return this; - if (e.has_directive("use strict") && t.is_constant()) return this; - } - if (n.has_side_effects(e)) return this; - t = this.right; - return !we[this.operator.slice(0, -1)] && (this.write_only = !0, vi(n).is_constant_expression(e.find_parent(vt))) ? t.drop_side_effect_free(e) : this; - }), se(Ti, function(e) { - if (!e.option("awaits")) return this; - var n = this.expression; - if (!yn(e, n)) return this; - var t = this.clone(); - return t.expression = n.drop_side_effect_free(e) || ve(or, this, { - value: 0 - }), t; - }), se(ki, function(e, n) { - var t = this.left, i = this.right, r = this.operator; - if ("in" == r && !bn(i)) return (o = t.drop_side_effect_free(e, n)) === t ? this : ((s = this.clone()).left = o || ve(or, t, { - value: 0 - }), s); - var o, a = i.drop_side_effect_free(e, n); - if (!a) return t.drop_side_effect_free(e, n); - if (we[r] && a.has_side_effects(e)) { - var s = this; - if (a !== i && ((s = s.clone()).right = a.drop_side_effect_free(e)), "??" == r) return s; - r = ve(ki, this, { - operator: "&&" == r ? "||" : "&&", - left: t.negate(e, n), - right: s.right - }); - return (n ? V : ne)(s, r); - } - return (o = t.drop_side_effect_free(e, n)) ? (a = a.drop_side_effect_free(e)) ? J(this, [ o, a ]) : o : a; - }), se(pi, function(e, n) { - var t = this; - if (t.is_expr_pure(e)) { - t.pure && Gn.warn("Dropping __PURE__ call [{file}:{line},{col}]", t.start); - var i = Je(t.args, e, n, Xe); - return i && J(t, i.map(Ke)); - } - var r = t.expression; - if (t.is_call_pure(e)) return (a = t.args.slice()).unshift(r.expression), (a = Je(a, e, n, Xe)) && J(t, a.map(Ke)); - if (e.option("yields") && xt(r)) { - i = t.clone(); - i.expression = ve(Dt, r, r), i.expression.body = []; - var o = i.transform(e); - if (o !== i) return o.drop_side_effect_free(e, n); - } - o = Qe(e, r); - if (o && ((t = t.clone()).expression = o, r._squeezed && (t.expression._squeezed = !0)), - t instanceof di) { - var a, o = r; - if ((o = o instanceof Xi ? o.fixed_value() : o) instanceof _t) { - if (function(e, n) { - e.new = !0; - var t = Ln(e.body, function(e) { - return !e.has_side_effects(n); - }) && Ln(e.argnames, function(e) { - return !e.match_symbol(Fn); - }) && !(e.rest && e.rest.match_symbol(Fn)); - return delete e.new, t; - }(o, e)) return (a = t.args.slice()).unshift(r), (a = Je(a, e, n, Xe)) && J(t, a.map(Ke)); - o.contains_this() || (t = ve(pi, t, t)); - } - } - return t.call_only = !0, t; - }), se(Pt, function(e, n) { - var t = this.name; - return t && t.fixed_value() !== this && 0 < t.definition().references.length ? this : Ze(this, e, n); - }), se(Ei, function(e) { - var n, t, i = this.consequent.drop_side_effect_free(e), r = this.alternative.drop_side_effect_free(e); - return i === this.consequent && r === this.alternative ? this : (e.option("ie") && (n = [], - i instanceof Dt && (n.push(i), i = null), r instanceof Dt && (n.push(r), r = null)), - i ? r ? ((t = this.clone()).consequent = i, t.alternative = r) : t = ve(ki, this, { - operator: "&&", - left: this.condition, - right: i - }) : t = r ? ve(ki, this, { - operator: "||", - left: this.condition, - right: r - }) : this.condition.drop_side_effect_free(e), e.option("ie") ? (t && n.push(t), - 0 == n.length ? null : J(this, n)) : t); - }), se(ir, Nn), se(jt, function(e, n) { - return Ze(this, e, n); - }), se(_i, function(e, n) { - var t = this.expression; - return !this.optional && t.may_throw_on_access(e) ? this : t.drop_side_effect_free(e, n); - }), se(Dt, function(e) { - return Ge(this, e) ? null : this; - }), se(bt, Nn), se(Ci, function(e, n) { - var t = []; - this.properties.forEach(function(e) { - e instanceof bi ? t.push(e) : (e.key instanceof Gn && t.push(e.key), t.push(e.value)); - }); - n = Je(t, e, n, function(e, n, t) { - var i = e.expression; - return De(i) ? e : i.drop_side_effect_free(n, t); - }); - return n ? n !== t || Ln(n, function(e) { - return !(e instanceof bi); - }) ? J(this, n.map(function(e) { - return e instanceof bi ? ve(Ci, e, { - properties: [ e ] - }) : e; - })) : this : null; - }), se(Qi, Nn), se(hi, function(e, n) { - var t = Je(this.expressions, e, n); - if (!t) return null; - var i, r, o, a = t.length - 1, s = t[a]; - return e.option("awaits") && 0 < a && s instanceof Ti && s.expression.is_constant() && (t = t.slice(0, -1), - s.expression = t[--a], t[a] = s), e.option("conditionals") && 0 < a && (i = t[a - 1]) instanceof Si && "=" == i.operator && (o = i.left) instanceof Xi && (r = hn(e, o.definition(), i.right, s)) && ((i = i.clone()).right = r, - (t = t.slice(0, -2)).push(i.drop_side_effect_free(e, n))), t === this.expressions ? this : J(this, t); - }), se(gi, function(e, n) { - var t = this.expression, i = this.property; - if (t.may_throw_on_access(e)) { - if (!this.optional) return this; - if (i.has_side_effects(e)) { - if (!(i = i.drop_side_effect_free(e))) return t.drop_side_effect_free(e, n); - var r = this.clone(); - return r.property = i, r; - } - } - return (t = t.drop_side_effect_free(e, n)) ? (i = i.drop_side_effect_free(e)) ? J(this, [ t, i ]) : t : i.drop_side_effect_free(e, n); - }), se(Xi, function(e) { - return this.is_declared(e) && pe(this, e) ? null : this; - }), se(tr, function(e, n) { - var t = this; - if (t.is_expr_pure(e)) { - var i = t.expressions; - return 0 == i.length ? null : J(t, i).drop_side_effect_free(e, n); - } - n = t.tag, e = Qe(e, n); - return e && ((t = t.clone()).tag = e, n._squeezed && (t.tag._squeezed = !0)), t; - }), se(yi, function(e, n) { - var t = this.expression; - if (Er[this.operator]) return this.write_only = !t.has_side_effects(e), this; - if ("typeof" == this.operator && t instanceof Xi && pe(t, e)) return null; - var i = t.drop_side_effect_free(e, n); - return n && i && Z(i) ? i === t && "!" == this.operator ? this : i.negate(e, n) : i; - }), e(et, function(e, n) { - if (n.option("side_effects")) { - var t = e.body, n = t.drop_side_effect_free(n, !0); - if (!n) return Gn.warn("Dropping side-effect-free statement [{file}:{line},{col}]", e.start), - ve(Qn, e); - if (n !== t) return ve(et, e, { - body: n - }); - } - return e; - }), e(ct, function(e, n) { - return n.option("loops") ? ve(ut, e, e).optimize(n) : e; - }), e(ft, function(t, e) { - if (!e.option("loops")) return t; - var n = tn(e, t.condition); - if (!(n instanceof Gn)) { - if (n && !en(t, e.parent(), Wt)) return ve(ut, t, { - body: ve(rt, t.body, { - body: [ t.body, ve(et, t.condition, { - body: t.condition - }) ] - }) - }).optimize(e); - if (!en(t, e.parent())) return ve(rt, t.body, { - body: [ t.body, ve(et, t.condition, { - body: t.condition - }) ] - }).optimize(e); - } - if (t.body instanceof rt && !en(t, e.parent(), Wt)) { - for (var i = t.body.body, r = i.length; 0 <= --r; ) { - var o = i[r]; - if (o instanceof Gt && !o.alternative && o.body instanceof Vt && e.loopcontrol_target(o.body) === t) { - if (a(o.condition)) break; - t.condition = ve(ki, t, { - operator: "&&", - left: o.condition.negate(e), - right: t.condition - }), i.splice(r, 1); - } else if (o instanceof et) { - if (a(o.body)) break; - t.condition = J(t, [ o.body, t.condition ]), i.splice(r, 1); - } else if (!N(o, !0)) break; - } - t.body = Pe(t.body, e.parent()); - } - return t.body instanceof Qn ? ve(ut, t, t).optimize(e) : t.body instanceof et ? ve(ut, t, { - condition: J(t.condition, [ t.body.body, t.condition ]), - body: ve(Qn, t) - }).optimize(e) : t; - function a(e) { - var n = !1; - return e.walk(new mr(function(e) { - return !!n || (e instanceof Xi ? (qn(e.definition(), t.enclosed) || (n = !0), !0) : void 0); - })), n; - } - }), e(ut, function(e, n) { - if (!n.option("loops")) return e; - if (n.option("side_effects") && (e.init && (e.init = e.init.drop_side_effect_free(n)), - e.step && (e.step = e.step.drop_side_effect_free(n))), e.condition) { - var t = tn(n, e.condition); - if (t) t instanceof Gn || (e.body = ve(rt, e.body, { - body: [ ve(et, e.condition, { - body: e.condition - }), e.body ] - }), e.condition = null); else if (n.option("dead_code")) { - t = []; - return Zn(e.init) ? t.push(e.init) : e.init && t.push(ve(et, e.init, { - body: e.init - })), t.push(ve(et, e.condition, { - body: e.condition - })), Y(n, e.body, t), ve(rt, e, { - body: t - }).optimize(n); - } - } - return function n(t, i) { - var e = a(t.body); - if (i.option("dead_code") && (e instanceof Vt || e instanceof Wt && s(e) || e instanceof Rt)) { - var r = []; - Zn(t.init) ? r.push(t.init) : t.init && r.push(ve(et, t.init, { - body: t.init - })); - var o = s(e) || e instanceof Rt; - return t.condition && o ? r.push(ve(Gt, t, { - condition: t.condition, - body: e, - alternative: null - })) : t.condition ? r.push(ve(et, t.condition, { - body: t.condition - })) : o && r.push(e), Y(i, t.body, r), ve(rt, t, { - body: r - }); - } - if (e instanceof Gt) { - if ((o = a(e.body)) instanceof Vt && !s(o)) return t.condition ? t.condition = ve(ki, t.condition, { - left: t.condition, - operator: "&&", - right: e.condition.negate(i) - }) : t.condition = e.condition.negate(i), r = F(e.alternative), Y(i, e.body, r), - f(r); - if ((o = a(e.alternative)) instanceof Vt && !s(o)) return t.condition ? t.condition = ve(ki, t.condition, { - left: t.condition, - operator: "&&", - right: e.condition - }) : t.condition = e.condition, r = F(e.body), Y(i, e.alternative, r), f(r); - } - return t; - function a(e) { - return e instanceof rt ? e.body[0] : e; - } - function s(e) { - return i.loopcontrol_target(e) !== i.self(); - } - function f(e) { - return t.body instanceof rt ? (t.body = t.body.clone(), t.body.body = e.concat(t.body.body.slice(1)), - t.body = t.body.transform(i)) : t.body = ve(rt, t.body, { - body: e - }).transform(i), n(t, i); - } - }(e, n); - }), e(lt, function(e, n) { - var t; - return n.option("varify") && C(e.init) && (((t = e.init.definitions[0].name) instanceof Oi || t instanceof Bi) && !t.match_symbol(function(e) { - if (e instanceof Hi) { - e = e.definition(); - return !kn(e) || sn(n, e); - } - }, !0) && (e.init = fn(e.init))), e; - }), e(Gt, function(e, f) { - if (Q(e.alternative) && (e.alternative = null), !f.option("conditionals")) return e; - if (f.option("booleans") && !e.condition.has_side_effects(f) && rn(f, e.condition), - f.option("dead_code")) { - var n = tn(f, e.condition); - if (!n) { - Gn.warn("Condition always false [{file}:{line},{col}]", e.condition.start); - var t = [ ve(et, e.condition, { - body: e.condition - }) ]; - return Y(f, e.body, t), e.alternative && t.push(e.alternative), ve(rt, e, { - body: t - }).optimize(f); - } - if (!(n instanceof Gn)) { - Gn.warn("Condition always true [{file}:{line},{col}]", e.condition.start); - t = [ ve(et, e.condition, { - body: e.condition - }), e.body ]; - return e.alternative && Y(f, e.alternative, t), ve(rt, e, { - body: t - }).optimize(f); - } - } - var i = e.condition.negate(f), r = e.condition.print_to_string().length, o = i.print_to_string().length, a = o < r; - e.alternative && a && (a = !1, e.condition = i, u = e.body, e.body = e.alternative || ve(Qn, e), - e.alternative = u); - var t = [], s = [], c = [], n = p(e.body, t, s, c), u = p(e.alternative, t, s, c); - if (n && u) return 0 < s.length && t.push(ve(oi, e, { - definitions: s - })), 0 == n.length ? t.push(ve(et, e.condition, { - body: 0 < u.length ? ve(ki, e, { - operator: "||", - left: e.condition, - right: J(e.alternative, u) - }).transform(f) : e.condition.clone() - }).optimize(f)) : 0 == u.length ? (r === o && !a && e.condition instanceof ki && "||" == e.condition.operator && (a = !0), - t.push(ve(et, e, { - body: ve(ki, e, { - operator: a ? "||" : "&&", - left: a ? i : e.condition, - right: J(e.body, n) - }).transform(f) - }).optimize(f))) : t.push(ve(et, e, { - body: ve(Ei, e, { - condition: e.condition, - consequent: J(e.body, n), - alternative: J(e.alternative, u) - }) - }).optimize(f)), c.forEach(function(e) { - e.definition().references.push(e); - }), ve(rt, e, { - body: t - }).optimize(f); - if ((e = Q(e.body) ? ve(Gt, e, { - condition: i, - body: e.alternative, - alternative: null - }) : e).body instanceof Rt && e.alternative instanceof Rt && e.body.TYPE == e.alternative.TYPE) { - var l = ve(e.body.CTOR, e, { - value: ve(Ei, e, { - condition: e.condition, - consequent: e.body.value || ve(ur, e.body).transform(f), - alternative: e.alternative.value || ve(ur, e.alternative).transform(f) - }) - }); - return l instanceof Bt && (l.in_bool = e.body.in_bool || e.alternative.in_bool), - l; - } - if (Me((e = e.body instanceof Gt && !e.body.alternative && !e.alternative ? ve(Gt, e, { - condition: ve(ki, e.condition, { - operator: "&&", - left: e.condition, - right: e.body.condition - }), - body: e.body.body, - alternative: null - }) : e).body) && e.alternative) { - l = e.alternative; - return e.alternative = null, ve(rt, e, { - body: [ e, l ] - }).optimize(f); - } - if (Me(e.alternative)) { - t = e.body; - return e.body = e.alternative, e.condition = a ? i : e.condition.negate(f), e.alternative = null, - ve(rt, e, { - body: [ e, t ] - }).optimize(f); - } - return f.option("typeofs") && nn(e.condition, e.body, e.alternative), e; - function p(e, n, t, i) { - if (null == e) return []; - if (e instanceof rt) { - for (var r = [], o = 0; o < e.body.length; o++) { - var a = e.body[o]; - if (a instanceof $t) n.push(a); else if (!(a instanceof Qn)) if (a instanceof et) { - if (!f.option("sequences") && 0 < r.length) return; - r.push(a.body); - } else { - if (!(a instanceof oi)) return; - if (!f.option("sequences") && 0 < r.length) return; - a.remove_initializers(f, t), a.definitions.forEach(s); - } - } - return r; - } - if (e instanceof $t) return n.push(e), []; - if (e instanceof Qn) return []; - if (e instanceof et) return [ e.body ]; - if (e instanceof oi) { - r = []; - return e.remove_initializers(f, t), e.definitions.forEach(s), r; - } - function s(e) { - e.value && r.push(ve(Si, e, { - operator: "=", - left: e.name.convert_symbol(Xi, function(e) { - i.push(e); - }), - right: e.value - })); - } - } - }), e(Jt, function(i, t) { - if (!t.option("switches")) return i; - if (!t.option("dead_code")) return i; - for (var e, n, r, o = [], a = [], s = [], f = 0, c = i.body.length; f < c; f++) { - if ((e = i.body[f]) instanceof Kt) { - var u = o[o.length - 1]; - if (n || y(e.body[0], t) && (!u || Me(u))) { - x(e, u); - continue; - } - n = e; - } else { - var l = e.expression, p = ve(ki, i, { - operator: "===", - left: i.expression, - right: l - }).evaluate(t, !0); - if (!p) { - l.has_side_effects(t) && s.push(l), x(e, o[o.length - 1]); - continue; - } - if (!(p instanceof Gn)) for (n && (p = o.indexOf(n), o.splice(p, 1), x(n, o[p - 1]), - n = null), l.has_side_effects(t) ? r = e : n = e = ve(Kt, e, e); ++f < c; ) x(i.body[f], e); - } - if (c <= f + 1 || Me(e)) { - var d, u = o[o.length - 1], h = e.body; - if (Me(u)) switch (u.body.length - h.length) { - case 1: - if (!y(d = u.body[u.body.length - 1], t)) break; - h = h.concat(d); - - case 0: - var v = ve(rt, u, u), m = ve(rt, e, { - body: h - }); - v.equivalent_to(m) && (u.body = []); - } - } - s.length && (e instanceof Kt ? o.push(ve(Qt, i, { - expression: J(i, s), - body: [] - })) : (s.push(e.expression), e.expression = J(i, s)), s = []), o.push(e); - } - for (s.length && !r && o.push(ve(Qt, i, { - expression: J(i, s), - body: [] - })); e = o[o.length - 1]; ) { - if (y(d = e.body[e.body.length - 1], t) && e.body.pop(), e === n) { - if (!j(e)) break; - } else { - if (e.expression.has_side_effects(t)) break; - if (n) { - if (!j(n)) break; - if (o[o.length - 2] !== n) break; - n.body = n.body.concat(e.body), e.body = []; - } else if (!j(e)) break; - } - x(e), o.pop() === n && (n = null); - } - if (!e) return a.push(ve(et, i.expression, { - body: i.expression - })), s.length && a.push(ve(et, i, { - body: J(i, s) - })), ve(rt, i, { - body: a - }).optimize(t); - if (e === n) for (;(e = o[o.length - 2]) && !(e instanceof Kt) && j(e); ) { - if ((l = e.expression).has_side_effects(t)) { - if ((u = o[o.length - 3]) && !Me(u)) break; - n.body.unshift(ve(et, i, { - body: l - })); - } - x(e), o.splice(-2, 1); - } - if (o[0].body = a.concat(o[0].body), i.body = o, t.option("conditionals")) switch (o.length) { - case 1: - if (!w(o[0])) break; - l = o[0].expression, h = o[0].body.slice(); - return o[0] !== n && o[0] !== r ? ve(Gt, i, { - condition: ve(ki, i, { - operator: "===", - left: i.expression, - right: l - }), - body: ve(rt, i, { - body: h - }), - alternative: null - }).optimize(t) : (l && h.unshift(ve(et, l, { - body: l - })), h.unshift(ve(et, i.expression, { - body: i.expression - })), ve(rt, i, { - body: h - }).optimize(t)); - - case 2: - if (!qn(n, o) || !w(o[1])) break; - var _ = (h = o[0].body.slice()).length && y(h[h.length - 1], t); - if (_ && h.pop(), !Ln(h, w)) break; - var g = o[1].body.length && ve(rt, o[1], o[1]), b = ve(Gt, i, { - condition: ve(ki, i, o[0] === n ? { - operator: "!==", - left: i.expression, - right: o[1].expression - } : { - operator: "===", - left: i.expression, - right: o[0].expression - }), - body: ve(rt, o[0], { - body: h - }), - alternative: _ && g || null - }); - return (b = !_ && g ? ve(rt, i, { - body: [ b, g ] - }) : b).optimize(t); - } - return i; - function y(e, n) { - return e instanceof Vt && n.loopcontrol_target(e) === i; - } - function w(e) { - var n = !1, t = new mr(function(e) { - if (n || e instanceof _t || e instanceof et) return !0; - y(e, t) && (n = !0); - }); - return t.push(i), e.walk(t), !n; - } - function x(e, n) { - n && !Me(n) ? n.body = n.body.concat(e.body) : Y(t, e, a); - } - }), e(Zt, function(e, n) { - if (e.body = H(e.body, n), n.option("dead_code")) { - if (j(e) && !(e.bcatch && e.bcatch.argname && e.bcatch.argname.match_symbol(function(e) { - return e instanceof Ji && !pe(e); - }, !0))) { - var t = []; - return e.bcatch && (Y(n, e.bcatch, t), t.forEach(function(e) { - e instanceof oi && e.definitions.forEach(function(e) { - var n = e.name.definition().redefined(); - n && (e.name = e.name.clone(), e.name.thedef = n); - }); - })), t.unshift(ve(rt, e, e).optimize(n)), e.bfinally && t.push(ve(rt, e.bfinally, e.bfinally).optimize(n)), - ve(rt, e, { - body: t - }).optimize(n); - } - if (e.bfinally && j(e.bfinally)) { - t = ve(rt, e.bfinally, e.bfinally).optimize(n); - if (t = e.body.concat(t), !e.bcatch) return ve(rt, e, { - body: t - }).optimize(n); - e.body = t, e.bfinally = null; - } - } - return e; - }), ii.DEFMETHOD("remove_initializers", on(function(e, n) { - return ve(ur, n).optimize(e); - })), ri.DEFMETHOD("remove_initializers", on(Nn)), oi.DEFMETHOD("remove_initializers", on(Nn)), - ti.DEFMETHOD("to_assignments", function() { - var e = this.definitions.reduce(function(e, n) { - var t, i, r = n.name.definition(), o = n.value; - return o && (o instanceof hi && (o = o.clone()), t = ve(Xi, n.name, n.name), i = ve(Si, n, { - operator: "=", - left: t, - right: o - }), e.push(i), t.fixed = function() { - return i.right; - }, t.fixed.assigns = [ i ], r.references.forEach(function(e) { - e = e.fixed && e.fixed.assigns; - e && e[0] === n && (e[0] = i); - }), r.references.push(t)), r.eliminated++, r.single_use = !1, e; - }, []); - return 0 == e.length ? null : J(this, e); - }), e(ii, un), e(ri, un), e(pi, function(l, f) { - var a = l.expression, e = ln(l, f); - if (e) return e; - if (f.option("sequences")) if (a instanceof mi) { - if ((b = pn(a)) !== a) { - e = l.clone(); - return e.expression = b.expressions.pop(), b.expressions.push(e), b.optimize(f); - } - } else if (!K(0, a.tail_node())) if ((b = pn(l)) !== l) return b.optimize(f); - if (f.option("unused") && dn(l, f), f.option("unsafe")) if (ge(a)) switch (a.name) { - case "Array": - if (1 == l.args.length) { - if ((c = l.args[0]) instanceof or) try { - var n = c.value; - if (6 < n) break; - for (var t = Array(n), i = 0; i < n; i++) t[i] = ve(lr, l); - return ve(Di, l, { - elements: t - }); - } catch (e) { - Gn.warn("Invalid array length: {length} [{file}:{line},{col}]", { - length: n, - file: l.start.file, - line: l.start.line, - col: l.start.col - }); - break; - } - if (!c.is_boolean(f) && !c.is_string(f)) break; - } - return ve(Di, l, { - elements: l.args - }); - - case "Object": - if (0 == l.args.length) return ve(Ci, l, { - properties: [] - }); - break; - - case "String": - if (0 == l.args.length) return ve(rr, l, { - value: "" - }); - if (1 == l.args.length) return ve(ki, l, { - operator: "+", - left: ve(rr, l, { - value: "" - }), - right: l.args[0] - }).optimize(f); - break; - - case "Number": - if (0 == l.args.length) return ve(or, l, { - value: 0 - }); - if (1 == l.args.length) return ve(wi, l, { - operator: "+", - expression: ve(ki, l, { - operator: "+", - left: ve(rr, l, { - value: "" - }), - right: l.args[0] - }) - }).optimize(f); - break; - - case "Boolean": - if (0 == l.args.length) return ve(hr, l).optimize(f); - if (1 == l.args.length) return ve(wi, l, { - operator: "!", - expression: ve(wi, l, { - operator: "!", - expression: l.args[0] - }) - }).optimize(f); - break; - - case "RegExp": - var r = []; - if (Ln(l.args, function(e) { - var n = e.evaluate(f); - return r.unshift(n), e !== n; - })) try { - return te(f, l, ve(sr, l, { - value: RegExp.apply(RegExp, r) - })); - } catch (e) { - Gn.warn("Error converting {expr} [{file}:{line},{col}]", { - expr: l, - file: l.start.file, - line: l.start.line, - col: l.start.col - }); - } - } else if (a instanceof _i) switch (a.property) { - case "toString": - var o = a.expression; - if (0 == l.args.length && !(o.may_throw_on_access(f) || o instanceof Zi)) return ve(ki, l, { - operator: "+", - left: ve(rr, l, { - value: "" - }), - right: o - }).optimize(f); - break; - - case "join": - if (a.expression instanceof Di && l.args.length < 2) e: { - var s = l.args[0]; - if (0 == a.expression.elements.length && !(s instanceof bi)) return s ? J(l, [ s, ve(rr, l, { - value: "" - }) ]).optimize(f) : ve(rr, l, { - value: "" - }); - if (!(s && (s = s.evaluate(f)) instanceof Gn)) { - for (var c, t = [], u = [], i = 0; i < a.expression.elements.length; i++) { - var p = a.expression.elements[i]; - if ((E = p.evaluate(f)) !== p) u.push(E); else { - if (p instanceof bi) break e; - 0 < u.length && (t.push(ve(rr, l, { - value: u.join(s) - })), u.length = 0), t.push(p); - } - } - return (0 < u.length && t.push(ve(rr, l, { - value: u.join(s) - })), 1 == t.length) ? t[0].is_string(f) ? t[0] : ve(ki, t[0], { - operator: "+", - left: ve(rr, l, { - value: "" - }), - right: t[0] - }) : "" == s ? (c = t[0].is_string(f) || t[1].is_string(f) ? t.shift() : ve(rr, l, { - value: "" - }), t.reduce(function(e, n) { - return ve(ki, n, { - operator: "+", - left: e, - right: n - }); - }, c).optimize(f)) : ((M = l.clone()).expression = M.expression.clone(), M.expression.expression = M.expression.expression.clone(), - M.expression.expression.elements = t, te(f, l, M)); - } - } - break; - - case "charAt": - if (l.args.length < 2) return (M = ve(ki, l, { - operator: "||", - left: ve(gi, l, { - expression: a.expression, - property: l.args.length ? ve(ki, l.args[0], { - operator: "|", - left: ve(or, l, { - value: 0 - }), - right: l.args[0] - }) : ve(or, l, { - value: 0 - }) - }).optimize(f), - right: ve(rr, l, { - value: "" - }) - })).is_string = jn, M.optimize(f); - break; - - case "apply": - if (2 == l.args.length && l.args[1] instanceof Di) return (z = l.args[1].elements.slice()).unshift(l.args[0]), - ve(pi, l, { - expression: ve(_i, a, { - expression: a.expression, - property: "call" - }), - args: z - }).optimize(f); - break; - - case "call": - o = a.expression; - if ((o = o instanceof Xi ? o.fixed_value() : o) instanceof _t && !o.contains_this()) return (l.args.length ? J(this, [ l.args[0], ve(pi, l, { - expression: a.expression, - args: l.args.slice(1) - }) ]) : ve(pi, l, { - expression: a.expression, - args: [] - })).optimize(f); - } - if (f.option("unsafe_Function") && ge(a) && "Function" == a.name) { - if (0 == l.args.length) return ve(Dt, l, { - argnames: [], - body: [] - }).init_vars(a.scope); - if (Ln(l.args, function(e) { - return e instanceof rr; - })) try { - var d = kr(_ = "n(function(" + l.args.slice(0, -1).map(function(e) { - return e.value; - }).join() + "){" + l.args[l.args.length - 1].value + "})"), h = { - ie: f.option("ie") - }; - d.figure_out_scope(h); - var v, m = new Tr(f.options); - (d = d.transform(m)).figure_out_scope(h), d.compute_char_frequency(h), d.mangle_names(h), - d.walk(new mr(function(e) { - return !!v || (e instanceof _t ? (v = e, !0) : void 0); - })); - var _ = Ar(); - return rt.prototype._codegen.call(v, _), l.args = [ ve(rr, l, { - value: v.argnames.map(function(e) { - return e.print_to_string(); - }).join() - }), ve(rr, l.args[l.args.length - 1], { - value: _.get().replace(/^\{|\}$/g, "") - }) ], l; - } catch (e) { - if (!(e instanceof yr)) throw e; - Gn.warn("Error parsing code passed to new Function [{file}:{line},{col}]", l.args[l.args.length - 1].start), - Gn.warn(e.toString()); - } - } - var g = a instanceof Xi ? a.fixed_value() : a, b = f.parent(), y = f.self(), m = g instanceof _t && (!wt(g) || f.option("awaits") && b instanceof Ti) && (!xt(g) || f.option("yields") && y instanceof Ai && y.nested), h = m && g.first_statement(), w = 0, x = !1, k = !Ln(l.args, function(e) { - return !(e instanceof bi); - }), d = m && Ln(g.argnames, function(e, n) { - if (1 == w && l.args[n] instanceof bi && (w = 2), e instanceof li) { - n = 1 == (w = w || 1) && l.args[n]; - if (n && !ye(n) && (w = 2), j(e.value)) return; - e = e.name; - } - return !(e instanceof Oi && (x = !0, j(e))); - }) && !(g.rest instanceof Oi && j(g.rest)), _ = d && f.option("inline") && !l.is_expr_pure(f); - if (_ && h instanceof Bt) { - var E = h.value; - if (a === g && !g.name && (!E || E.is_constant_expression()) && H(g)) return J(l, N(E)).optimize(f); - } - if (m) { - var S = !1; - if (_ && !g.uses_arguments && !g.pinned() && !(g.name && g instanceof bt) && (a === g || !xn(f, C = a.definition(), g) && g.is_constant_expression(W(f))) && !k && (E = function(e) { - var n = g.body.length; - if (n < 2 && (e = R(e))) return e; - if (f.option("inline") < 3) return !1; - e = null; - for (var t = 0; t < n; t++) { - var i = g.body[t]; - if (i instanceof oi) { - var r = S || !ee(i); - if (r && (S = !0, e)) return !1; - } else if (!(i instanceof zt || i instanceof Ct || i instanceof Qn)) { - if (e) return !1; - e = i; - } - } - return R(e); - }(h)) && !g.contains_this()) { - var T, A, D, O, $ = a === g || C.single_use && C.references.length - C.replaced == 1; - if (function() { - if (!(w || x || S || g.rest) && !(f.option("inline") < 2 && g.argnames.length) && g.variables.all(function(e) { - return e.references.length - e.replaced < 2 && e.orig[0] instanceof Ui; - })) { - var i, r = !1, o = I(), a = [], s = !1; - if (E.walk(new mr(function(e, n) { - if (r) return !0; - if (!(e instanceof ki && we[e.operator] || e instanceof Ei)) { - if (e instanceof vt) return r = !0; - if (o && e instanceof Ii && o[e.name]) return r = !0; - if (e instanceof Xi) { - var t = e.definition(); - if (g.variables.get(e.name) !== t) return void (a = null); - if (t.init instanceof $t) return r = !0; - if (Sr(e, this.parent())) return r = !0; - t = B(t); - return (i < t || (i = t), a) ? void (s ? a = null : a.push(g.argnames[t])) : void 0; - } - return e.has_side_effects(f) ? (n(), s = !0) : void 0; - } - a = null; - })), !r) { - var e = l.args.length; - if (a && g.argnames.length >= e) { - for (e = g.argnames.length; e-- > i && g.argnames[e] === a.pop(); ); - e++; - } - var n = s && !a && f.find_parent(vt); - return e <= i || Ln(l.args.slice(i, e), n ? function(e) { - return e.is_constant_expression(n); - } : function(e) { - return !e.has_side_effects(f); - }); - } - } - }()) { - var z = l.args.slice(), q = []; - z.push(E.clone(!0).transform(new _r(function(e) { - if (e instanceof Xi) { - var n = e.definition(); - if (g.variables.get(e.name) !== n) return q.push(e), e; - var t = B(n), n = z[t]; - if (!n) return ve(ur, l); - z[t] = null; - t = this.parent(); - return t ? me(0, t, e, n) : n; - } - }))); - var C = g.inlined; - a !== g && (g.inlined = !0); - var M = J(l, z.filter(function(e) { - return e; - })).optimize(f); - if (g.inlined = C, M = me(0, b, y, M), $ || ne(M, l) === M) return q.forEach(function(e) { - e.scope = a === g ? g.parent_scope : a.scope, e.reference(); - e = e.definition(); - $ && e.replaced++, e.single_use = !1; - }), M; - M.has_side_effects(f) || (l.drop_side_effect_free = function(e, n) { - var t = this.args.slice(); - return t.unshift(this.expression), J(this, t).drop_side_effect_free(e, n); - }); - } - if ($ && function() { - var e, n = Object.create(null), t = 0; - O = y; - do { - if (O.variables && O.variables.each(function(e) { - n[e.name] = !0; - }), e = O, (O = f.parent(t++)) instanceof st) D = []; else if (O instanceof ut) O.init !== e && (D = []); else if (O instanceof lt) O.init !== e && O.object !== e && (D = []); else if (O instanceof Xi && O.fixed_value() instanceof vt) return !1; - } while (!(O instanceof vt)); - if (!(A = O.body.indexOf(e) + 1)) return !1; - if (!H(g)) return !1; - var i = a !== g || g.parent_scope.resolve() === O; - O instanceof mt && (f.toplevel.vars ? n.arguments = !0 : i = !1); - var r = f.option("inline"); - if (T = Object.create(n), !function(n, t, i) { - var r = !1; - return g.each_argname(function(e) { - if (!r && !e.__unused) { - if (!i || L(n, e.name)) return r = !0; - t[e.name] = !0, D && D.push(e.definition()); - } - }), !r; - }(n, T, 2 <= r && i)) return !1; - var o = Object.create(T); - return !!function(n, e, t) { - for (var i = 0; i < g.body.length; i++) { - var r = g.body[i]; - if (r instanceof $t) { - if (!t || L(e, r.name.name)) return !1; - if (!Ln(r.enclosed, function(e) { - return e.scope === r || !n[e.name]; - })) return !1; - D && D.push(r.name.definition()); - } else if (r instanceof oi) { - if (!t) return !1; - for (var o = r.definitions.length; 0 <= --o; ) { - var a = r.definitions[o].name; - if (L(n, a.name)) return !1; - D && D.push(a.definition()); - } - } - } - return !0; - }(n, o, 3 <= r && i) && (!D || 0 == D.length || !An(g, D)); - }()) { - g._squeezed = !0, a !== g && (g.parent_scope = a.scope); - M = J(l, function() { - var e = [], n = []; - (1 < w || x || g.rest ? function(i, r) { - function n(e, n) { - var t = n.definition(); - t.references.push(e); - n = ve(Li, n, n); - t.orig.push(n), U(i, r, n); - } - r.push(ve(Si, l, { - operator: "=", - left: ve($i, l, { - elements: g.argnames.map(function(e) { - return e.__unused ? ve(lr, e) : e.convert_symbol(Xi, n); - }), - rest: g.rest && g.rest.convert_symbol(Xi, n) - }), - right: ve(Di, l, { - elements: l.args.slice() - }) - })); - } : function(e, n) { - for (var t = g.argnames.length, i = l.args.length; --i >= t; ) n.push(l.args[i]); - var r, o = []; - for (i = t; 0 <= --i; ) { - var a = g.argnames[i]; - r = a instanceof li ? (o.push(a), a.name) : a; - var s, f = l.args[i]; - r.__unused || O.var_names()[r.name] ? f && n.push(f) : (s = ve(Li, r, r), r.definition().orig.push(s), - "__unused" in r ? (U(e, n, s), f && n.push(f)) : (!f && D && a === r && (f = ve(ur, l)), - U(e, n, s, f))); - } - for (e.reverse(), n.reverse(), i = o.length; 0 <= --i; ) { - var c, u = o[i]; - "__unused" in u.name ? n.push(u.value) : (c = ve(Xi, u.name, u.name), u.name.definition().references.push(c), - n.push(ve(Si, u, { - operator: "=", - left: c, - right: u.value - }))); - } - })(e, n); - var t = function(e, n) { - for (var t = [ A, 0 ], i = [], r = [], o = [], a = 0; a < g.body.length; a++) { - var s = g.body[a]; - if (s instanceof $t) D ? ((p = ve(Li, s.name, V(s.name))).definition().orig.push(p), - U(e, n, p, Be(s, !0))) : (c = s.name.definition(), O.functions.set(c.name, c), O.variables.set(c.name, c), - O.enclosed.push(c), O.var_names()[c.name] = !0, t.push(s)); else if (s instanceof oi) for (var f = 0; f < s.definitions.length; f++) { - var c, u, l = s.definitions[f], p = V(l.name); - U(i, r, p, l.value), D && !Vn(T, p.name) && (c = g.variables.get(p.name), u = ve(Xi, p, p), - c.references.push(u), o.push(ve(Si, l, { - operator: "=", - left: u, - right: ve(ur, p) - }))); - } - } - return [].push.apply(e, i), [].push.apply(n, o), [].push.apply(n, r), t; - }(e, n); - n.push(E), e.length && t.push(ve(oi, g, { - definitions: e - })); - return [].splice.apply(O.body, t), g.enclosed.forEach(function(e) { - O.var_names()[e.name] || (O.enclosed.push(e), O.var_names()[e.name] = !0); - }), n; - }()).optimize(f); - return me(0, b, y, M); - } - } - if (f.option("side_effects") && d && Ln(g.body, Q) && (g === a ? Ge(g, f) : !w && !x && !g.rest) && (!yt(g) || !g.value) && H(g)) return J(l, N()).optimize(f); - } - if (f.option("drop_console") && a instanceof mi) { - for (var F = a.expression; F.expression; ) F = F.expression; - if (ge(F) && "console" == F.name) return ve(ur, l).optimize(f); - } - return f.option("negate_iife") && b instanceof et && Z(y) ? l.negate(f, !0) : ae(f, l); - function j(e) { - var n = !1; - return e.walk(new mr(function(e) { - return !!n || (e instanceof Xi && g.variables.get(e.name) === e.definition() ? n = !0 : void 0); - })), n; - } - function P(e) { - return ve(_i, e, { - expression: ve(Di, e, { - elements: [] - }), - property: "e" - }); - } - function N(e) { - var a, t, n = l.args.slice(), i = 1 < w || x || g.rest; - return (i || k) && (n = [ ve(Di, l, { - elements: n - }) ]), i ? (a = new _r(function(i, e) { - if (i instanceof li) return ve(li, i, { - name: i.name.transform(a) || P(i), - value: i.value - }); - if (i instanceof $i) { - var t = []; - return i.elements.forEach(function(e, n) { - (e = e.transform(a)) && (t[n] = e); - }), Ye(i, t), ve($i, i, { - elements: t - }); - } - if (i instanceof qi) { - var r = [], o = []; - return i.properties.forEach(function(e) { - var n = e.key, t = e.value.transform(a); - t ? (o.length && (n instanceof Gn || (n = X(n, e)), o.push(n), n = J(i, o), o = []), - r.push(ve(zi, e, { - key: n, - value: t - }))) : n instanceof Gn && o.push(n); - }), o.length && r.push(ve(zi, i, { - key: J(i, o), - value: P(i) - })), ve(qi, i, { - properties: r - }); - } - return i instanceof Ui ? null : void 0; - }), t = [], g.argnames.forEach(function(e, n) { - (e = e.transform(a)) && (t[n] = e); - }), (i = g.rest && g.rest.transform(a)) && (t.length = g.argnames.length), Ye(g, t), - n[0] = ve(Si, l, { - operator: "=", - left: ve($i, g, { - elements: t, - rest: i - }), - right: n[0] - })) : g.argnames.forEach(function(e) { - e instanceof li && n.push(e.value); - }), n.push(e || ve(ur, l)), n; - } - function I() { - var e = [], n = O || f.find_parent(vt); - return wt(n) && e.push("await"), xt(n) && e.push("yield"), e.length && Bn(e); - } - function H(e) { - var t = I(); - if (!t) return 1; - var i = !0, r = new mr(function(e) { - if (!i) return !0; - if (e instanceof vt) { - if (e === g) return; - if (yt(e)) for (var n = 0; i && n < e.argnames.length; n++) e.argnames[n].walk(r); else e instanceof $t && t[e.name.name] && (i = !1); - return !0; - } - e instanceof Ii && t[e.name] && e !== g.name && (i = !1); - }); - return e.walk(r), i; - } - function Y() { - return l.call_only ? ve(or, l, { - value: 0 - }) : ve(ur, l); - } - function R(e) { - return e ? e instanceof Bt ? e.value || Y() : e instanceof et ? l.call_only ? e.body : ve(wi, e, { - operator: "void", - expression: e.body - }) : void 0 : Y(); - } - function B(e) { - for (var n = g.argnames.length; 0 <= --n; ) if (g.argnames[n].definition() === e) return n; - } - function L(e, n) { - return e[n] || G[n] || O.var_names()[n]; - } - function U(e, n, t, i) { - var r = t.definition(); - O.var_names()[t.name] || (O.var_names()[t.name] = !0, e.push(ve(ai, t, { - name: t, - value: null - }))), O.variables.set(t.name, r), O.enclosed.push(r), i && (t = ve(Xi, t, t), r.references.push(t), - n.push(ve(Si, l, { - operator: "=", - left: t, - right: i - }))); - } - function V(e) { - var n = e.definition().redefined(); - return n && ((e = e.clone()).thedef = n), e; - } - }), e(di, function(e, n) { - if (n.option("sequences")) { - var t = pn(e); - if (t !== e) return t.optimize(n); - } - if (n.option("unused") && dn(e, n), n.option("unsafe")) { - t = e.expression; - if (ge(t)) switch (t.name) { - case "Object": - case "RegExp": - case "Function": - case "Error": - case "Array": - return ve(pi, e, e).transform(n); - } - } - return e; - }), e(hi, function(e, o) { - var a = function() { - if (!o.option("side_effects")) return e.expressions; - var t = [], i = Wn(o), r = e.expressions.length - 1; - return e.expressions.forEach(function(e, n) { - (e = n < r ? e.drop_side_effect_free(o, i) : e) && (q(t, e), i = !1); - }), t; - }(), s = a.length - 1; - return function() { - for (var e = 1; e < s; e++) { - var n = a[e - 1], t = f(n); - if (t) { - var i = a[e]; - if (o.option("conditionals")) { - var r = hn(o, t, n.right, i); - if (r) { - n.right = r, a.splice(e--, 1), s--; - continue; - } - } - o.option("dead_code") && f(i) === t && i.right.is_constant_expression(t.scope.resolve()) && (a[--e] = n.right); - } - } - }(), function() { - if (o.option("side_effects")) { - for (;0 < s && ye(a[s], o); ) s--; - s < a.length - 1 && (a[s] = ve(wi, e, { - operator: "void", - expression: a[s] - }), a.length = s + 1); - } - }(), 0 == s ? (e = me(0, o.parent(), o.self(), a[0])) instanceof hi ? e : e.optimize(o) : (e.expressions = a, - e); - function f(e) { - return e instanceof Si && "=" == e.operator && e.left instanceof Xi && e.left.definition(); - } - }), e(xi, function(e, n) { - if (n.option("sequences")) { - var t = pn(e); - if (t !== e) return t.optimize(n); - } - return ae(n, e); - }); - var vn = Bn("+ -"), mn = Bn("* / %"); - e(wi, function(e, n) { - var t = e.operator, i = e.expression; - if (n.option("evaluate") && "delete" == t && !a(i)) return J(e, [ i, ve(vr, e) ]).optimize(n); - if (n.option("sequences") && function() { - switch (t) { - case "delete": - return !a(i.tail_node()); - - case "typeof": - return !ge(i.tail_node()); - - default: - return !0; - } - }()) { - var r = pn(e); - if (r !== e) return r.optimize(n); - } - if (n.option("side_effects") && "void" == t) return (i = i.drop_side_effect_free(n)) ? (e.expression = i, - e) : ve(ur, e).optimize(n); - if (n.option("booleans")) { - if ("!" == t && i.is_truthy()) return J(e, [ i, ve(hr, e) ]).optimize(n); - if (n.in_boolean_context()) switch (t) { - case "!": - if (i instanceof wi && "!" == i.operator) return i.expression; - i instanceof ki && (e = te(n, e, i.negate(n, Wn(n)))); - break; - - case "typeof": - Gn.warn("Boolean expression always true [{file}:{line},{col}]", e.start); - var o = [ ve(vr, e) ]; - return i instanceof Xi && pe(i, n) || o.unshift(i), J(e, o).optimize(n); - } - } - return "-" == t && i instanceof pr && (i = i.transform(n)), n.option("evaluate") && i instanceof ki && vn[t] && mn[i.operator] && (i.left.is_constant() || !i.right.has_side_effects(n)) ? ve(ki, e, { - operator: i.operator, - left: ve(wi, i.left, { - operator: t, - expression: i.left - }), - right: i.right - }) : "-" == t && (i instanceof or || i instanceof pr) ? e : ae(n, e); - function a(e) { - return e instanceof pr || e instanceof cr || e instanceof nr || e instanceof mi || e instanceof Xi || e instanceof ur; - } - }), e(Ti, function(e, n) { - if (!n.option("awaits")) return e; - if (n.option("sequences")) { - var t = pn(e); - if (t !== e) return t.optimize(n); - } - if (n.option("side_effects")) { - var i = e.expression; - if (i instanceof Ti) return i.optimize(n); - if (i instanceof wi) { - if (i.expression instanceof Ti) return i.optimize(n); - if ("void" == i.operator) return ve(wi, e, { - operator: "void", - expression: ve(Ti, e, { - expression: i.expression - }) - }).optimize(n); - } - for (var r, o = 0, a = e; r = n.parent(o++); a = r) { - if (yt(r)) { - if (r.value === a) return i.optimize(n); - } else if (r instanceof Bt) { - var s = !0; - do { - if (a = r, (r = n.parent(o++)) instanceof Zt && (r.bfinally || r.bcatch) !== a) { - s = !1; - break; - } - } while (r && !(r instanceof vt)); - if (s) return i.optimize(n); - } else if (r instanceof hi && r.tail_node() === a) continue; - break; - } - } - return e; - }), e(Ai, function(e, n) { - if (!n.option("yields")) return e; - if (n.option("sequences")) { - var t = pn(e); - if (t !== e) return t.optimize(n); - } - t = e.expression; - if (e.nested && "Call" == t.TYPE) { - n = t.clone().optimize(n); - if ("Call" != n.TYPE) return n; - } - return e; - }), ki.DEFMETHOD("lift_sequences", function(e) { - if (this.left instanceof mi) { - if (!(this.left.expression instanceof hi)) return this; - var n = this.left.expression.expressions.slice(); - return (t = this.clone()).left = t.left.clone(), t.left.expression = n.pop(), n.push(t), - J(this, n); - } - if (this.left instanceof hi) { - n = this.left.expressions.slice(); - return (t = this.clone()).left = n.pop(), n.push(t), J(this, n); - } - if (this.right instanceof hi) { - if (this.left.has_side_effects(e)) return this; - for (var t, i = "=" == this.operator && this.left instanceof Xi, r = (n = this.right.expressions).length - 1, o = 0; o < r && (i || !n[o].has_side_effects(e)); o++); - if (o == r) return n = n.slice(), (t = this.clone()).right = n.pop(), n.push(t), - J(this, n); - if (0 < o) return (t = this.clone()).right = J(this.right, n.slice(o)), (n = n.slice(0, o)).push(t), - J(this, n); - } - return this; - }); - var _n = Bn("indexOf lastIndexOf"), gn = Bn("== === != !== * & | ^"); - function bn(e) { - return e instanceof Si ? "=" == e.operator && bn(e.right) : e instanceof hi ? bn(e.tail_node()) : e instanceof Xi ? bn(e.fixed_value()) : e instanceof Di || e instanceof Ft || e instanceof _t || e instanceof di || e instanceof Ci; - } - function yn(e, n) { - if (n.is_constant()) return !0; - if (n instanceof Si) return "=" != n.operator || yn(e, n.right); - if (n instanceof ki) return !we[n.operator] || yn(e, n.left) && yn(e, n.right); - if (n instanceof Ei) return yn(e, n.consequent) && yn(e, n.alternative); - if (n instanceof hi) return yn(e, n.tail_node()); - if (n instanceof Xi) { - var t = n.fixed_value(); - return t && yn(e, t); - } - return n instanceof tr ? !n.tag || En(e, n.tag) : n instanceof yi || void 0; - } - function wn(e, n) { - return n instanceof _i ? wn(e, n.expression) : n instanceof gi ? wn(e, n.expression) && wn(e, n.property) : n instanceof Ii || !n.has_side_effects(e); - } - function xn(e, n, t) { - var i = 0, r = e.self(); - do { - if (r === t) return r; - if (D(r) && r.name && r.name.definition() === n) return r; - } while (r = e.parent(i++)); - } - function kn(e) { - var n = e.scope.resolve(); - return Ln(e.references, function(e) { - return n === e.scope.resolve(); - }); - } - function En(e, n) { - return e.option("unsafe") && n instanceof _i && "raw" == n.property && ge(n.expression) && "String" == n.expression.name; - } - function Sn(e) { - var t = !1; - if (e = e.replace(/\\(u\{[^{}]*\}?|u[\s\S]{0,4}|x[\s\S]{0,2}|[0-9]+|[\s\S])/g, function(e, n) { - n = br(n); - if ("string" == typeof n) return n; - t = !0; - }), !t) return e; - } - function Tn(e, n) { - return e instanceof Xi || e.TYPE === n.TYPE; - } - function An(t, n) { - var i = !1, r = new mr(function(e) { - return !!i || (e instanceof Xi && qn(e.definition(), n) ? i = !0 : void 0); - }), o = new mr(function(e) { - if (i) return !0; - if (e instanceof _t && e !== t) { - if (!(e.name || wt(e) || xt(e))) { - var n = o.parent(); - if (n instanceof pi && n.expression === e) return; - } - return e.walk(r), !0; - } - }); - return t.walk(o), i; - } - e(ki, function(t, a) { - function n() { - return t.left.is_constant() || t.right.is_constant() || !t.left.has_side_effects(a) && !t.right.has_side_effects(a); - } - function e(e) { - n() && (e && (t.operator = e), e = t.left, t.left = t.right, t.right = e); - } - function i() { - var e = t.right; - t.left = ve(ki, t, { - operator: t.operator, - left: t.left, - right: e.left, - start: t.left.start, - end: e.left.end - }), t.right = e.right, t.left = t.left.transform(a); - } - if (!gn[t.operator] || !t.right.is_constant() || t.left.is_constant() || t.left instanceof ki && xr[t.left.operator] >= xr[t.operator] || e(), - a.option("sequences")) { - var r = t.lift_sequences(a); - if (r !== t) return r.optimize(a); - } - if (a.option("assignments") && we[t.operator]) { - var o = t.right; - if (t.left instanceof Xi && o instanceof Si && "=" == o.operator && t.left.equivalent_to(o.left)) return t.right = o.right, - o.right = t, o; - } - if (a.option("comparisons")) switch (t.operator) { - case "===": - case "!==": - if (ye(t.left, a) && t.right.is_defined(a)) return Gn.warn("Expression always defined [{file}:{line},{col}]", t.start), - J(t, [ t.right, ve("===" == t.operator ? hr : vr, t) ]).optimize(a); - var s = !0; - (t.left.is_string(a) && t.right.is_string(a) || t.left.is_number(a) && t.right.is_number(a) || t.left.is_boolean(a) && t.right.is_boolean(a) || wn(a, t.left) && t.left.equivalent_to(t.right)) && (t.operator = t.operator.slice(0, 2)); - - case "==": - case "!=": - if (!s && ye(t.left, a)) t.left = ve(fr, t.left); else if (a.option("typeofs") && t.left instanceof rr && "undefined" == t.left.value && t.right instanceof wi && "typeof" == t.right.operator) { - var f = t.right.expression; - (f instanceof Xi ? !f.is_declared(a) : f instanceof mi && a.option("ie")) || (t.right = f, - t.left = ve(ur, t.left).optimize(a), 2 == t.operator.length && (t.operator += "=")); - } else if (t.left instanceof Xi && t.right instanceof Xi && t.left.definition() === t.right.definition() && bn(t.left)) return ve("=" == t.operator[0] ? vr : hr, t).optimize(a); - break; - - case "&&": - case "||": - if ((d = (d = t.left).operator == t.operator ? d.right : d) instanceof ki && d.operator == ("&&" == t.operator ? "!==" : "===") && t.right instanceof ki && d.operator == t.right.operator && (ye(d.left, a) && t.right.left instanceof fr || d.left instanceof fr && ye(t.right.left, a)) && !d.right.has_side_effects(a) && d.right.equivalent_to(t.right.right)) { - f = ve(ki, t, { - operator: d.operator.slice(0, -1), - left: ve(fr, t), - right: d.right - }); - return f = d !== t.left ? ve(ki, t, { - operator: t.operator, - left: t.left.left, - right: f - }) : f; - } - } - var c, u, l = !1, p = a.parent(); - if (a.option("booleans")) { - var d = t.left; - if (we[t.operator] && !d.has_side_effects(a)) { - if (d.equivalent_to(t.right)) return me(0, p, a.self(), d).optimize(a); - rn(a, d); - } - l = a.in_boolean_context(); - } - if (l) switch (t.operator) { - case "+": - var h = t.left.evaluate(a), v = t.right.evaluate(a); - if (h && "string" == typeof h) return Gn.warn("+ in boolean context always true [{file}:{line},{col}]", t.start), - J(t, [ t.right, ve(vr, t) ]).optimize(a); - if (v && "string" == typeof v) return Gn.warn("+ in boolean context always true [{file}:{line},{col}]", t.start), - J(t, [ t.left, ve(vr, t) ]).optimize(a); - break; - - case "==": - if (t.left instanceof rr && "" == t.left.value && t.right.is_string(a)) return ve(wi, t, { - operator: "!", - expression: t.right - }).optimize(a); - break; - - case "!=": - if (t.left instanceof rr && "" == t.left.value && t.right.is_string(a)) return t.right.optimize(a); - } - if (a.option("comparisons") && t.is_boolean(a)) { - if (!(p instanceof ki) || p instanceof Si) { - o = te(a, t, ve(wi, t, { - operator: "!", - expression: t.negate(a, Wn(a)) - })); - if (o !== t) return o; - } - switch (t.operator) { - case ">": - e("<"); - break; - - case ">=": - e("<="); - } - } - if (a.option("conditionals") && we[t.operator] && t.right instanceof ki && t.operator == t.right.operator && i(), - a.option("strings") && "+" == t.operator) { - if (t.right instanceof rr && "" == t.right.value && t.left.is_string(a)) return t.left.optimize(a); - if (t.left instanceof rr && "" == t.left.value && t.right.is_string(a)) return t.right.optimize(a); - if (t.left instanceof ki && "+" == t.left.operator && t.left.left instanceof rr && "" == t.left.left.value && t.right.is_string(a) && (t.left.right.is_constant() || !t.right.has_side_effects(a))) return t.left = t.left.right, - t.optimize(a); - t.right instanceof ki && t.operator == t.right.operator && (t.left.is_string(a) && t.right.is_string(a) || t.right.left.is_string(a) && (t.left.is_constant() || !t.right.right.has_side_effects(a))) && i(); - } - if (a.option("evaluate")) { - var m, _ = !0; - switch (t.operator) { - case "&&": - if (!(h = tn(a, t.left))) return Gn.warn("Condition left of && always false [{file}:{line},{col}]", t.start), - me(0, p, a.self(), t.left).optimize(a); - if (!(h instanceof Gn)) return Gn.warn("Condition left of && always true [{file}:{line},{col}]", t.start), - J(t, [ t.left, t.right ]).optimize(a); - if (v = t.right.evaluate(a)) { - if (!(v instanceof Gn) && (l || "&&" == p.operator && p.left === a.self())) return Gn.warn("Dropping side-effect-free && [{file}:{line},{col}]", t.start), - t.left.optimize(a); - } else { - if (l) return Gn.warn("Boolean && always false [{file}:{line},{col}]", t.start), - J(t, [ t.left, ve(hr, t) ]).optimize(a); - t.falsy = !0; - } - if ("||" == t.left.operator) if (!(b = tn(a, t.left.right))) return ve(Ei, t, { - condition: t.left.left, - consequent: t.right, - alternative: t.left.right - }).optimize(a); - break; - - case "??": - var g = !0; - - case "||": - var b, h = tn(a, t.left, g); - if (g ? null == h : !h) return Gn.warn("Condition left of {operator} always {value} [{file}:{line},{col}]", { - operator: t.operator, - value: g ? "nulish" : "false", - file: t.start.file, - line: t.start.line, - col: t.start.col - }), J(t, [ t.left, t.right ]).optimize(a); - if (!(h instanceof Gn)) return Gn.warn("Condition left of {operator} always {value} [{file}:{line},{col}]", { - operator: t.operator, - value: g ? "defined" : "true", - file: t.start.file, - line: t.start.line, - col: t.start.col - }), me(0, p, a.self(), t.left).optimize(a); - if (v = t.right.evaluate(a)) { - if (!(g || v instanceof Gn)) { - if (l) return Gn.warn("Boolean || always true [{file}:{line},{col}]", t.start), - J(t, [ t.left, ve(vr, t) ]).optimize(a); - t.truthy = !0; - } - } else if (l || "||" == p.operator && p.left === a.self()) return Gn.warn("Dropping side-effect-free {operator} [{file}:{line},{col}]", { - operator: t.operator, - file: t.start.file, - line: t.start.line, - col: t.start.col - }), t.left.optimize(a); - if (!g && "&&" == t.left.operator) if ((b = tn(a, t.left.right)) && !(b instanceof Gn)) return ve(Ei, t, { - condition: t.left.left, - consequent: t.left.right, - alternative: t.right - }).optimize(a); - break; - - case "+": - if ((t = (t = t.left instanceof ir && t.right instanceof ki && "+" == t.right.operator && t.right.left instanceof ir && t.right.is_string(a) ? ve(ki, t, { - operator: "+", - left: ve(rr, t.left, { - value: "" + t.left.value + t.right.left.value, - start: t.left.start, - end: t.right.left.end - }), - right: t.right.right - }) : t).right instanceof ir && t.left instanceof ki && "+" == t.left.operator && t.left.right instanceof ir && t.left.is_string(a) ? ve(ki, t, { - operator: "+", - left: t.left.left, - right: ve(rr, t.right, { - value: "" + t.left.right.value + t.right.value, - start: t.left.right.start, - end: t.right.end - }) - }) : t).right instanceof wi && "-" == t.right.operator && t.left.is_number(a)) { - t = ve(ki, t, { - operator: "-", - left: t.left, - right: t.right.expression - }); - break; - } - if (t.left instanceof wi && "-" == t.left.operator && n() && t.right.is_number(a)) { - t = ve(ki, t, { - operator: "-", - left: t.right, - right: t.left.expression - }); - break; - } - if (a.option("unsafe_math") && t.left instanceof ki && xr[t.left.operator] == xr[t.operator] && t.right.is_constant() && (t.right.is_boolean(a) || t.right.is_number(a)) && t.left.is_number(a) && !t.left.right.is_constant() && (t.left.left.is_boolean(a) || t.left.left.is_number(a))) { - t = ve(ki, t, { - operator: t.left.operator, - left: ve(ki, t, { - operator: t.operator, - left: t.right, - right: t.left.left - }), - right: t.left.right - }); - break; - } - - case "-": - if (t.right instanceof wi && "-" == t.right.operator && t.left.is_number(a) && t.right.expression.is_number(a)) { - t = ve(ki, t, { - operator: "+", - left: t.left, - right: t.right.expression - }); - break; - } - - case "*": - case "/": - _ = a.option("unsafe_math"), "+" != t.operator && [ "left", "right" ].forEach(function(e) { - var n = t[e]; - n instanceof wi && "+" == n.operator && (((n = n.expression).is_boolean(a) || n.is_number(a) || n.is_string(a)) && (t[e] = n)); - }); - - case "&": - case "|": - case "^": - if ("-" == t.operator || "/" == t.operator || !t.left.is_boolean(a) && !t.left.is_number(a) || !t.right.is_boolean(a) && !t.right.is_number(a) || !n() || t.left instanceof ki && t.left.operator != t.operator && xr[t.left.operator] >= xr[t.operator] || (m = ve(ki, t, { - operator: t.operator, - left: t.right, - right: t.left - }), t = t.right instanceof ir && !(t.left instanceof ir) ? te(a, m, t) : te(a, t, m)), - !_ || !t.is_number(a)) break; - !(t.right instanceof ki && "%" != t.right.operator && xr[t.right.operator] == xr[t.operator] && t.right.is_number(a) && ("+" != t.operator || t.right.left.is_boolean(a) || t.right.left.is_number(a))) || "-" == t.operator && t.left.is_negative_zero() || !t.right.left.is_constant_expression() && t.right.right.has_side_effects(a) || (c = t.right.right, - u = !1, c.walk(new mr(function(e) { - if (u) return !0; - if (e instanceof Si) { - if (e.left instanceof mi) return u = !0; - } else if (e instanceof yi && Er[e.operator] && e.expression instanceof mi) return u = !0; - })), u) || "+" != (t = ve(ki, t, { - operator: k(t.operator, t.right.operator), - left: ve(ki, t.left, { - operator: t.operator, - left: t.left, - right: t.right.left, - start: t.left.start, - end: t.right.left.end - }), - right: t.right.right - })).operator || t.right.is_boolean(a) || t.right.is_number(a) || (t.right = ve(wi, t.right, { - operator: "+", - expression: t.right - })), t.right instanceof ir && t.left instanceof ki && "%" != t.left.operator && xr[t.left.operator] == xr[t.operator] && t.left.is_number(a) && (t.left.left instanceof ir ? (d = E(t.left, t.operator, t.left.left, t.right, t.left.left.start, t.right.end), - t = E(t, t.left.operator, ae(a, d), t.left.right)) : t.left.right instanceof ir && (m = k(t.left.operator, t.operator), - !(m = ae(a, E(t.left, m, t.left.right, t.right))).is_constant() || "-" == t.left.operator && 0 != t.right.value && 0 == +m.value && t.left.left.is_negative_zero() || (t = E(t, t.left.operator, t.left.left, m)))); - } - if (!(p instanceof wi && "delete" == p.operator)) { - if (t.left instanceof or && !t.right.is_constant()) switch (t.operator) { - case "+": - if (0 == t.left.value) { - if (t.right.is_boolean(a)) return ve(wi, t, { - operator: "+", - expression: t.right - }).optimize(a); - if (t.right.is_number(a) && !t.right.is_negative_zero()) return t.right; - } - break; - - case "*": - if (1 == t.left.value) return t.right.is_number(a) ? t.right : ve(wi, t, { - operator: "+", - expression: t.right - }).optimize(a); - } - if (t.right instanceof or && !t.left.is_constant()) switch (t.operator) { - case "+": - if (0 == t.right.value) { - if (t.left.is_boolean(a)) return ve(wi, t, { - operator: "+", - expression: t.left - }).optimize(a); - if (t.left.is_number(a) && !t.left.is_negative_zero()) return t.left; - } - break; - - case "-": - if (0 == t.right.value) return t.left.is_number(a) ? t.left : ve(wi, t, { - operator: "+", - expression: t.left - }).optimize(a); - break; - - case "/": - if (1 == t.right.value) return t.left.is_number(a) ? t.left : ve(wi, t, { - operator: "+", - expression: t.left - }).optimize(a); - } - } - } - if (a.option("typeofs")) switch (t.operator) { - case "&&": - nn(t.left, t.right, null); - break; - - case "||": - nn(t.left, null, t.right); - } - if (a.option("unsafe")) { - var y = S(t.right); - if (l && y && ("==" == t.operator || "!=" == t.operator) && t.left instanceof or && 0 == t.left.value) return ("==" == t.operator ? ve(wi, t, { - operator: "!", - expression: t.right - }) : t.right).optimize(a); - var w = S(t.left); - if (a.option("comparisons") && function() { - switch (t.operator) { - case "<=": - return y && t.left instanceof or && 0 == t.left.value; - - case "<": - if (w && t.right instanceof or && 0 == t.right.value) return !0; - - case "==": - case "!=": - return y ? t.left instanceof or && -1 == t.left.value || t.left instanceof wi && "-" == t.left.operator && t.left.expression instanceof or && 1 == t.left.expression.value : !1; - } - }()) { - var x = ve(wi, t, { - operator: "!", - expression: ve(wi, t, { - operator: "~", - expression: w ? t.left : t.right - }) - }); - switch (t.operator) { - case "<": - if (w) break; - - case "<=": - case "!=": - x = ve(wi, t, { - operator: "!", - expression: x - }); - } - return x.optimize(a); - } - } - return ae(a, t); - function k(e, n) { - switch (e) { - case "-": - return "+" == n ? "-" : "+"; - - case "/": - return "*" == n ? "/" : "*"; - - default: - return n; - } - } - function E(e, n, t, i, r, o) { - return "+" == n && (t.is_boolean(a) || t.is_number(a) || (t = ve(wi, t, { - operator: "+", - expression: t - })), i.is_boolean(a) || i.is_number(a) || (i = ve(wi, i, { - operator: "+", - expression: i - }))), ve(ki, e, { - operator: n, - left: t, - right: i, - start: r, - end: o - }); - } - function S(e) { - return "Call" == e.TYPE && e.expression instanceof _i && _n[e.expression.property]; - } - }), e(Ki, function(e) { - return e; - }), e(Xi, function(e, n) { - if (!n.option("ie") && ge(e) && (!e.scope.resolve().uses_with || !n.find_parent(ht))) switch (e.name) { - case "undefined": - return ve(ur, e).optimize(n); - - case "NaN": - return ve(cr, e).optimize(n); - - case "Infinity": - return ve(pr, e).optimize(n); - } - var t = n.parent(); - if (n.option("reduce_vars") && Sr(n.self(), t) !== n.self()) { - var i, r, o, a, s = e.definition(), f = e.fixed_value(), t = s.single_use && !(t instanceof pi && t.is_expr_pure(n)); - if (t) if (D(f)) { - if (s.scope === e.scope.resolve() && !s.in_loop || n.option("reduce_funcs") && 1 != s.escaped.depth && !f.inlined) if (xn(n, s, f)) t = !1; else if (f.name && f.name.definition() !== s) t = !1; else if (f.parent_scope !== e.scope || le(s)) { - if ("f" == (t = f.is_constant_expression(e.scope))) for (var c = e.scope; (c instanceof $t || c instanceof bt) && (c.inlined = !0), - c = c.parent_scope; ); - } else (f.name && ("await" == f.name.name && wt(f) || "yield" == f.name.name && xt(f)) || f.has_side_effects(n) || n.option("ie") && f instanceof Ft) && (t = !1); else t = !1; - t && (f.parent_scope = e.scope); - } else (!f || 0 < s.recursive_refs || !f.is_constant_expression() || f.drop_side_effect_free(n)) && (t = !1); - if (t) return s.single_use = !1, f._squeezed = !0, f.single_use = !0, D(f = (f = f instanceof jt ? Re(f) : f) instanceof $t ? Be(f) : f) && (c = e.scope.resolve(), - f.enclosed.forEach(function(e) { - f.variables.has(e.name) || c.var_names()[e.name] || (c.enclosed.push(e), c.var_names()[e.name] = !0); - })), 0 < s.recursive_refs ? (i = (d = f.clone(!0)).name.definition(), r = d.variables.get(d.name.name), - o = r && r.orig[0], l = d instanceof Ft ? (a = "def_function", Gi) : (a = "def_variable", - Wi), o instanceof l || (((o = ve(l, d.name, d.name)).scope = d).name = o, (r = d[a](o)).recursive_refs = s.recursive_refs), - d.walk(new mr(function(e) { - var n, t; - e instanceof Hi ? e !== o && ((n = e.definition()).orig.push(e), n.eliminated++) : e instanceof Xi && ((n = e.definition()) === i ? e.thedef = n = r : (n.single_use = !1, - D(t = e.fixed_value()) && t.name && t.name.definition() === n && n.scope === t.name.scope && f.variables.get(t.name.name) === n && (t.name = t.name.clone(), - e.thedef = n = d.variables.get(t.name.name) || d[a](t.name))), n.references.push(e)); - }))) : (f instanceof vt ? (n.push(f), d = f.optimize(n), n.pop()) : d = f.optimize(n), - d = d.transform(new _r(function(e, n) { - return e instanceof vt || n(e = e.clone(), this), e; - }))), s.replaced++, d; - var u, l, p, d, t = e.fixed !== s.fixed; - if (f && (t || !1 !== s.should_replace)) if (f instanceof er ? !le(s) && kn(s) && (u = f) : (p = f.evaluate(n, !0)) !== f && "function" != typeof p && (null === p || "object" != typeof p || n.option("unsafe_regexp") && p instanceof RegExp && !s.cross_loop && kn(s)) && (u = X(p, f)), - u) if (t || void 0 !== s.should_replace || (l = u.optimize(n).print_to_string().length, - h(f) || (l = Math.min(l, f.print_to_string().length)), p = s.name.length, n.option("unused") && !n.exposed(s) && (p += (p + 2 + l) / (s.references.length - s.replaced - s.assignments)), - p = l - Math.floor(p), s.should_replace = p < n.eval_threshold), t || s.should_replace) return h(f) ? (d = u.optimize(n)) === u && (d = d.clone(!0)) : (d = ne(u.optimize(n), f)) !== u && d !== f || (d = d.clone(!0)), - s.replaced++, d; - } - return e; - function h(e) { - var n; - return e.walk(new mr(function(e) { - if (n = e instanceof Xi ? !0 : n) return !0; - })), n; - } - }), e(tr, function(e, t) { - if (!t.option("templates")) return e; - var i = e.tag; - if (!i || En(t, i)) { - for (var n, r = [], o = [], a = 0; a < e.strings.length; a++) { - var s, f = e.strings[a]; - if (i || (s = Sn(f)) && (f = d(s)), 0 < a) { - var c = e.expressions[a - 1], u = function(e) { - var n = e.evaluate(t); - if (n !== e && !(i && /\r|\\|`/.test(n) || (n = d("" + n)).length > e.print_to_string().length + "${}".length)) return n; - }(c); - if (u) { - var l, u = o[o.length - 1] + u + f; - if (i || typeof (l = Sn(u)) == n) { - o[o.length - 1] = l ? d(l) : u; - continue; - } - } - r.push(c); - } - o.push(f), i || (n = typeof s); - } - if (!i && 1 < o.length) { - if ("" == o[o.length - 1]) return ve(ki, e, { - operator: "+", - left: ve(tr, e, { - expressions: r.slice(0, -1), - strings: o.slice(0, -1), - tag: i - }).transform(t), - right: r[r.length - 1] - }).optimize(t); - if ("" == o[0]) { - for (var p = ve(ki, e, { - operator: "+", - left: ve(rr, e, { - value: "" - }), - right: r[0] - }), a = 1; "" == o[a] && a < r.length; a++) p = ve(ki, e, { - operator: "+", - left: p, - right: r[a] - }); - return te(t, e, ve(ki, e, { - operator: "+", - left: p.transform(t), - right: ve(tr, e, { - expressions: r.slice(a), - strings: o.slice(a), - tag: i - }).transform(t) - }).optimize(t)); - } - } - e.expressions = r, e.strings = o; - } - return ae(t, e); - function d(e) { - return e.replace(/\r|\\|`|\${/g, function(e) { - return "\\" + ("\r" == e ? "r" : e); - }); - } - }), e(ur, function(e, n) { - if (n.option("unsafe_undefined")) { - var t = W(n).find_variable("undefined"); - if (t) { - t = ve(Xi, e, { - name: "undefined", - scope: t.scope, - thedef: t - }); - return t.is_undefined = !0, t; - } - } - n = Sr(n.self(), n.parent()); - return n && Tn(n, e) ? e : ve(wi, e, { - operator: "void", - expression: ve(or, e, { - value: 0 - }) - }); - }), e(pr, function(e, n) { - var t = Sr(n.self(), n.parent()); - return (!t || !Tn(t, e)) && (!n.option("keep_infinity") || t || W(n).find_variable("Infinity")) ? ve(ki, e, { - operator: "/", - left: ve(or, e, { - value: 1 - }), - right: ve(or, e, { - value: 0 - }) - }) : e; - }), e(cr, function(e, n) { - var t = Sr(n.self(), n.parent()); - return (!t || !Tn(t, e)) && (t || W(n).find_variable("NaN")) ? ve(ki, e, { - operator: "/", - left: ve(or, e, { - value: 0 - }), - right: ve(or, e, { - value: 0 - }) - }) : e; - }); - var Dn = Bn("+ - * / % >> << >>> | ^ &"), On = Bn("* | ^ &"); - function $n(e, n) { - if (e) { - var t = n.parent(); - return "Call" != t.TYPE ? 1 : t.expression !== n.self() || (!(e instanceof Xi) || (e = e.fixed_value())) && (e instanceof _t && !e.contains_this()); - } - } - function zn(e) { - return e instanceof Fi && "string" == typeof e.key && !(e instanceof ji && e.value.contains_super()); - } - e(Si, function(o, a) { - if (a.option("dead_code")) if (o.left instanceof mi) { - if ("=" == o.operator) { - if (o.__drop) { - var e = [ o.left.expression ]; - return o.left instanceof gi && e.push(o.left.property), e.push(o.right), J(o, e).optimize(a); - } - if (o.left.equivalent_to(o.right) && !o.left.has_side_effects(a)) return o.right; - e = o.left.expression; - if (e instanceof _t || !a.has_directive("use strict") && e instanceof ir && !e.may_throw_on_access(a)) return o.left instanceof _i ? o.right : J(o, [ o.left.property, o.right ]).optimize(a); - } - } else if (o.left instanceof Xi && pe(o.left, a)) { - if ("=" == o.operator && o.left.equivalent_to(o.right) && !((c = a.parent()) instanceof wi && "delete" == c.operator)) return o.right; - if (o.left.is_immutable()) return h(); - var n, t, i = o.left.definition(), s = i.scope.resolve(), r = s === a.find_parent(_t), f = 0, c = a.self(); - if (!s.uses_arguments || !le(i) || a.has_directive("use strict")) do { - if (n = c, (c = a.parent(f++)) instanceof Si) { - if (c.left instanceof Xi && c.left.definition() === i) { - if (d(f, c)) break; - return h(i); - } - if (c.left.match_symbol(function(e) { - if (e instanceof mi) return !0; - })) break; - } else { - if (c instanceof Rt) { - if (!r) break; - if (d(f, c)) break; - if (An(s, [ i ])) break; - return h(i); - } - if (c instanceof et) { - if (!r) break; - if (An(s, [ i ])) break; - do { - if (t = c, (c = a.parent(f++)) === s && I(c.body, t)) return h(i); - } while (u = t, (l = c) instanceof rt || l instanceof ei || l instanceof ni ? I(l.body, u) : l instanceof Gt ? l.body === u || l.alternative === u : l instanceof Zt ? l.bfinally ? l.bfinally === u : l.bcatch === u : void 0); - break; - } - if (c instanceof ai && c.name instanceof Hi && c.name.definition() === i) { - if (d(f, c)) break; - return h(i); - } - } - } while (function(e, n) { - if (n instanceof ki) return n.right === e || n.right.is_constant_expression(s); - if (n instanceof Ei) return n.condition !== e || n.consequent.is_constant_expression(s) && n.alternative.is_constant_expression(s); - if (n instanceof hi) { - var t = n.expressions, i = t.indexOf(e); - if (i < 0) return !1; - for (var r = t.length; --r > i; ) if (!t[r].is_constant_expression(s)) return !1; - return !0; - } - if (n instanceof wi) return !0; - }(n, c)); - } - var u, l; - if (a.option("sequences")) { - var p = o.lift_sequences(a); - if (p !== o) return p.optimize(a); - } - if (a.option("assignments")) { - if ("=" == o.operator && o.left instanceof Xi && o.right instanceof ki) { - if (o.right.left instanceof Xi && o.right.left.name == o.left.name && Dn[o.right.operator]) return ve(Si, o, { - operator: o.right.operator + "=", - left: o.left, - right: o.right.right - }); - if (o.right.right instanceof Xi && o.right.right.name == o.left.name && On[o.right.operator] && !o.right.left.has_side_effects(a)) return ve(Si, o, { - operator: o.right.operator + "=", - left: o.left, - right: o.right.left - }); - } - if (("-=" == o.operator || "+=" == o.operator && (o.left.is_boolean(a) || o.left.is_number(a))) && o.right instanceof or && 1 == o.right.value) { - p = o.operator.slice(0, -1); - return ve(wi, o, { - operator: p + p, - expression: o.left - }); - } - } - return ae(a, o); - function d(e, n) { - var t = o.right; - o.right = ve(fr, t); - var i, r = n.may_throw(a); - for (o.right = t; i = a.parent(e++); n = i) { - if (i === s) return; - if (i instanceof Zt) { - if (i.bfinally && i.bfinally !== n) return 1; - if (r && i.bcatch && i.bcatch !== n) return 1; - } - } - } - function h(e) { - return e && (e.fixed = !1), ("=" != o.operator ? ve(ki, o, { - operator: o.operator.slice(0, -1), - left: o.left, - right: o.right - }) : me(0, a.parent(), o, o.right)).optimize(a); - } - }), e(Ei, function(r, n) { - if (n.option("sequences") && r.condition instanceof hi) { - var e = r.condition.expressions.slice(); - return r.condition = e.pop(), e.push(r), J(r, e); - } - if (!n.option("conditionals")) return r; - var o = r.condition; - if (n.option("booleans") && !o.has_side_effects(n) && rn(n, o), !(o = tn(n, o))) return Gn.warn("Condition always false [{file}:{line},{col}]", r.start), - J(r, [ r.condition, r.alternative ]).optimize(n); - if (!(o instanceof Gn)) return Gn.warn("Condition always true [{file}:{line},{col}]", r.start), - J(r, [ r.condition, r.consequent ]).optimize(n); - var t = o.negate(n, Wn(n)); - te(n, o, t) === t && (r = ve(Ei, r, { - condition: t, - consequent: r.alternative, - alternative: r.consequent - }), t = o, o = r.condition); - var i = r.consequent, a = r.alternative; - if (wn(n, o)) { - if (o.equivalent_to(i)) return ve(ki, r, { - operator: "||", - left: o, - right: a - }).optimize(n); - if (o.equivalent_to(a)) return ve(ki, r, { - operator: "&&", - left: o, - right: i - }).optimize(n); - } - var s = i.tail_node(); - if (s instanceof Si) { - var f = "=" == s.operator, e = f ? a.tail_node() : a; - if ((f || i === s) && e instanceof Si && s.operator == e.operator && s.left.equivalent_to(e.left) && (f && s.left instanceof Xi || !o.has_side_effects(n) && m(i) && m(a))) return ve(Si, r, { - operator: s.operator, - left: s.left, - right: ve(Ei, r, { - condition: o, - consequent: _(i), - alternative: _(a) - }) - }); - } - if (i.equivalent_to(a)) return J(r, [ o, i ]).optimize(n); - var c, f = function e(n, t, i) { - if (!v(n, t)) return !i && ve(Ei, r, { - condition: o, - consequent: n, - alternative: t - }); - i = n.clone(); - i.expression = e(n.expression, t.expression); - return i; - }(i, a, !0); - if (f) return f; - if (i instanceof pi && a.TYPE == i.TYPE && 0 <= (c = h(i, a)) && i.expression.equivalent_to(a.expression) && !o.has_side_effects(n) && !i.expression.has_side_effects(n)) { - s = i.clone(), f = i.args[c]; - return s.args[c] = f instanceof bi ? ve(bi, r, { - expression: ve(Ei, r, { - condition: o, - consequent: f.expression, - alternative: a.args[c].expression - }) - }) : ve(Ei, r, { - condition: o, - consequent: f, - alternative: a.args[c] - }), s; - } - if (i instanceof Ei && i.alternative.equivalent_to(a)) return ve(Ei, r, { - condition: ve(ki, r, { - left: o, - operator: "&&", - right: i.condition - }), - consequent: i.consequent, - alternative: a - }); - if (i instanceof Ei && i.consequent.equivalent_to(a)) return ve(Ei, r, { - condition: ve(ki, r, { - left: t, - operator: "||", - right: i.condition - }), - consequent: a, - alternative: i.alternative - }); - if (a instanceof Ei && i.equivalent_to(a.consequent)) return ve(Ei, r, { - condition: ve(ki, r, { - left: o, - operator: "||", - right: a.condition - }), - consequent: i, - alternative: a.alternative - }); - if (a instanceof Ei && i.equivalent_to(a.alternative)) return ve(Ei, r, { - condition: ve(ki, r, { - left: t, - operator: "&&", - right: a.condition - }), - consequent: a.consequent, - alternative: i - }); - if ((i instanceof hi || a instanceof hi) && i.tail_node().equivalent_to(a.tail_node())) return J(r, [ ve(Ei, r, { - condition: o, - consequent: g(i), - alternative: g(a) - }), i.tail_node() ]).optimize(n); - if (i instanceof ki && "&&" == i.operator && i.right.equivalent_to(a)) return ve(ki, r, { - operator: "&&", - left: ve(ki, r, { - operator: "||", - left: t, - right: i.left - }), - right: a - }).optimize(n); - if (i instanceof ki && "||" == i.operator && i.right.equivalent_to(a)) return ve(ki, r, { - operator: "||", - left: ve(ki, r, { - operator: "&&", - left: o, - right: i.left - }), - right: a - }).optimize(n); - if (a instanceof ki && "&&" == a.operator && a.right.equivalent_to(i)) return ve(ki, r, { - operator: "&&", - left: ve(ki, r, { - operator: "||", - left: o, - right: a.left - }), - right: i - }).optimize(n); - if (a instanceof ki && "||" == a.operator && a.right.equivalent_to(i)) return ve(ki, r, { - operator: "||", - left: ve(ki, r, { - operator: "&&", - left: t, - right: a.left - }), - right: i - }).optimize(n); - var u = n.option("booleans") && n.in_boolean_context(); - return p(i) ? d(a) ? l(o) : ve(ki, r, { - operator: "||", - left: l(o), - right: a - }) : d(i) ? p(a) ? l(o.negate(n)) : ve(ki, r, { - operator: "&&", - left: l(o.negate(n)), - right: a - }) : p(a) ? ve(ki, r, { - operator: "||", - left: l(o.negate(n)), - right: i - }) : d(a) ? ve(ki, r, { - operator: "&&", - left: l(o), - right: i - }) : (n.option("typeofs") && nn(o, i, a), r); - function l(e) { - return e.is_boolean(n) ? e : ve(wi, e, { - operator: "!", - expression: e.negate(n) - }); - } - function p(e) { - return e instanceof vr || u && e instanceof ir && e.value || e instanceof wi && "!" == e.operator && e.expression instanceof ir && !e.expression.value; - } - function d(e) { - return e instanceof hr || u && (e instanceof ir && !e.value || e instanceof wi && "void" == e.operator && !e.expression.has_side_effects(n)) || e instanceof wi && "!" == e.operator && e.expression instanceof ir && e.expression.value; - } - function h(e, n) { - var t = e.args, i = n.args, r = t.length; - if (r != i.length) return -2; - for (var o = 0; o < r; o++) if (!t[o].equivalent_to(i[o])) { - if (t[o] instanceof bi != i[o] instanceof bi) return -3; - for (var a = o + 1; a < r; a++) if (!t[a].equivalent_to(i[a])) return -2; - return o; - } - return -1; - } - function v(e, n) { - if (e.TYPE == n.TYPE && e.optional == n.optional) { - if (e instanceof pi) return -1 != h(e, n) ? void 0 : "Call" != e.TYPE || !(e.expression instanceof mi || n.expression instanceof mi) || v(e.expression, n.expression); - if (e instanceof mi) { - var t = e.property, i = n.property; - return (t instanceof Gn ? t.equivalent_to(i) : t == i) && !(e.expression instanceof Zi || n.expression instanceof Zi); - } - } - } - function m(e) { - return e === e.tail_node() || Ln(e.expressions.slice(0, -1), function(e) { - return !e.has_side_effects(n); - }); - } - function _(e) { - if (!(e instanceof hi)) return e.right; - var n = e.expressions.slice(); - return n.push(n.pop().right), J(e, n); - } - function g(e) { - return e instanceof hi ? J(e, e.expressions.slice(0, -1)) : ve(or, e, { - value: 0 - }); - } - }), e(dr, function(e, n) { - if (!n.option("booleans")) return e; - if (n.in_boolean_context()) return ve(or, e, { - value: +e.value - }); - n = n.parent(); - return n instanceof ki && ("==" == n.operator || "!=" == n.operator) ? (Gn.warn("Non-strict equality against boolean: {operator} {value} [{file}:{line},{col}]", { - operator: n.operator, - value: e.value, - file: n.start.file, - line: n.start.line, - col: n.start.col - }), ve(or, e, { - value: +e.value - })) : ve(wi, e, { - operator: "!", - expression: ve(or, e, { - value: 1 - e.value - }) - }); - }), e(bi, function(e, n) { - var t = e.expression; - return n.option("spreads") && t instanceof Di && !(n.parent() instanceof Ci) ? In.splice(t.elements.map(function(e) { - return e instanceof lr ? ve(ur, e).optimize(n) : e; - })) : e; - }), e(gi, function(e, t) { - var n = e.expression, i = e.property, r = ln(e, t); - if (r) return r; - if (t.option("properties")) { - var o = i.evaluate(t); - if (o !== i) { - "string" == typeof o && ("undefined" == o ? o = void 0 : (m = parseFloat(o)).toString() == o && (o = m)); - var i = e.property = ne(i, X(o, i).transform(t)), a = "" + o; - if (gr(a) && a.length <= i.print_to_string().length + 1) return ve(_i, e, { - optional: e.optional, - expression: n, - property: a - }).optimize(t); - } - } - var s, f, c, u, l = t.parent(), r = Sr(t.self(), l); - if (t.option("arguments") && n instanceof Xi && ue(s = n.definition()) && !n.in_arg && i instanceof or && Math.floor(h = i.value) == h && (f = s.scope) === function() { - var e, n = 0; - for (;e = t.parent(n++); ) if (e instanceof _t) { - if (e instanceof gt) return; - if (!yt(e)) return c = t.parent(n), e; - } - }() && f.uses_arguments < (r ? 2 : 3)) { - l instanceof wi && "delete" == l.operator && (s.deleted || (s.deleted = []), s.deleted[h] = !0); - var p = f.argnames[h]; - if (s.deleted && s.deleted[h]) p = null; else if (p) (!(p instanceof Ui && "await" != p.name && n.scope.find_variable(p.name) === (d = p.definition())) || (t.has_directive("use strict") || f.name || f.rest || !(c instanceof pi && h < c.args.length && Ln(c.args.slice(0, h + 1), function(e) { - return !(e instanceof bi); - })) || !Ln(f.argnames, function(e) { - return e instanceof Ui; - })) && (w() || d.assignments || 1 < d.orig.length)) && (p = null); else if ((r || !w()) && h < f.argnames.length + 5 && t.drop_fargs(f, c) && !f.rest) for (;h >= f.argnames.length; ) p = f.make_var(Ui, f, "argument_" + f.argnames.length), - f.argnames.push(p); - if (p && Cn(function(e) { - return e.name === p.name; - }, f.argnames) === p) { - r && s.reassigned--; - var d = ve(Xi, e, p); - return d.reference(), delete p.__unused, d; - } - } - if (r) return e; - if (t.option("sequences") && "Call" != l.TYPE && !(l instanceof lt && l.init === e)) { - l = pn(e); - if (l !== e) return l.optimize(t); - } - if (o === i || (v = e.flatten_object(a, t)) && (n = e.expression = v.expression, - i = e.property = v.property), t.option("properties") && t.option("side_effects") && i instanceof or && n instanceof Di && Ln(u = n.elements, function(e) { - return !(e instanceof bi); - })) { - var h, v = u[h = i.value]; - if ($n(v, t)) { - for (var m, _ = v instanceof lr, g = !_, b = [], y = u.length; --y > h; ) (m = u[y].drop_side_effect_free(t)) && (b.unshift(m), - g && m.has_side_effects(t) && (g = !1)); - for (g || b.unshift(v); 0 <= --y; ) (m = u[y].drop_side_effect_free(t)) ? b.unshift(m) : _ ? b.unshift(ve(lr, u[y])) : h--; - return g ? (b.push(v), J(e, b).optimize(t)) : ve(gi, e, { - expression: ve(Di, n, { - elements: b - }), - property: ve(or, i, { - value: h - }) - }); - } - } - return ae(t, e); - function w() { - return !t.option("reduce_vars") || s.reassigned; - } - }), Et.DEFMETHOD("contains_super", Fn), St.DEFMETHOD("contains_super", Fn), _t.DEFMETHOD("contains_super", function() { - var n, t = this; - return t.walk(new mr(function(e) { - return !!n || (e instanceof Zi ? n = !0 : e !== t && e instanceof vt && !yt(e) || void 0); - })), n; - }), $t.DEFMETHOD("contains_super", Fn), vt.DEFMETHOD("contains_super", Fn), Et.DEFMETHOD("contains_this", Fn), - St.DEFMETHOD("contains_this", Fn), Gn.DEFMETHOD("contains_this", function() { - var n, t = this; - return t.walk(new mr(function(e) { - return !!n || (e instanceof er ? n = !0 : e !== t && e instanceof vt && !yt(e) || void 0); - })), n; - }), mi.DEFMETHOD("flatten_object", function(e, n) { - if (n.option("properties") && "__proto__" !== e) { - var t = this.expression; - if (t instanceof Ci) for (var i = t.properties, r = i.length; 0 <= --r; ) { - var o = i[r]; - if (o.key === e) { - if (!Ln(i, zn)) break; - if (!$n(o.value, n)) break; - if (i = i.map(function(e) { - return e.value; - }), o instanceof ji && o.value instanceof Dt && !(n.parent() instanceof pi)) { - if (o.value.uses_arguments) break; - i[r] = ve(Et, o.value, o.value); - } - return ve(gi, this, { - expression: ve(Di, t, { - elements: i - }), - property: ve(or, this, { - value: r - }) - }); - } - } - } - }), e(_i, function(e, n) { - "arguments" != e.property && "caller" != e.property || Gn.warn("Function.prototype.{prop} not supported [{file}:{line},{col}]", { - prop: e.property, - file: e.start.file, - line: e.start.line, - col: e.start.col - }); - var t = n.parent(); - if (Sr(n.self(), t)) return e; - var i = ln(e, n); - if (i) return i; - if (n.option("sequences") && "Call" != t.TYPE && !(t instanceof lt && t.init === e)) { - var r = pn(e); - if (r !== e) return r.optimize(n); - } - if (n.option("unsafe_proto") && e.expression instanceof _i && "prototype" == e.expression.property) { - var o = e.expression.expression; - if (ge(o)) switch (o.name) { - case "Array": - e.expression = ve(Di, e.expression, { - elements: [] - }); - break; - - case "Function": - e.expression = ve(Dt, e.expression, { - argnames: [], - body: [] - }).init_vars(o.scope); - break; - - case "Number": - e.expression = ve(or, e.expression, { - value: 0 - }); - break; - - case "Object": - e.expression = ve(Ci, e.expression, { - properties: [] - }); - break; - - case "RegExp": - e.expression = ve(sr, e.expression, { - value: /t/ - }); - break; - - case "String": - e.expression = ve(rr, e.expression, { - value: "" - }); - } - } - r = e.flatten_object(e.property, n); - return r ? r.optimize(n) : ae(n, e); - }), e($i, function(e, n) { - return n.option("rests") && e.rest instanceof $i ? ve($i, e, { - elements: e.elements.concat(e.rest.elements), - rest: e.rest.rest - }) : e; - }), e(zi, function(e, n) { - var t; - return !n.option("objects") || (t = e.key) instanceof Gn && (t = t.evaluate(n)) !== e.key && (e.key = "" + t), - e; - }), e(Ci, function(t, i) { - if (!i.option("objects")) return t; - var e, r = !1, o = !1, a = !1, s = i.has_directive("use strict"), f = new Un(), c = []; - return t.properties.forEach(function(e) { - if (!(e instanceof bi)) return l(e); - o = !0; - var n = e.expression; - i.option("spreads") && n instanceof Ci && Ln(n.properties, function(e) { - return !(e instanceof Ni) && (!(e instanceof bi) && ("__proto__" !== e.key || (e instanceof Pi || !e.value.has_side_effects(i)))); - }) ? (r = !0, n.properties.forEach(function(e) { - var n = e.key, t = e instanceof Pi; - if ("__proto__" === n) { - if (!t) return; - n = X(n, e); - } - l(t ? ve(Fi, e, { - key: n, - value: ve(ur, e).optimize(i) - }) : e); - })) : (a = !0, u(), c.push(e)); - }), u(), r ? (o && a && 1 == c.length && ((e = c[0]) instanceof Mi && e.key instanceof or && (e.key = "" + e.key.value)), - ve(Ci, t, { - properties: c - })) : t; - function u() { - f.each(function(e) { - if (1 == e.length) return c.push(e[0]); - r = !0; - var n = s && !a && e.pop(); - c.push(1 == e.length ? e[0] : ve(Fi, t, { - key: e[0].key, - value: J(t, e.map(function(e) { - return e.value; - })) - })), n && c.push(n); - }), f = new Un(); - } - function l(e) { - var n = e.key; - n instanceof Gn && (o = !0, (n = n.evaluate(i)) === e.key || "__proto__" === n ? a = !0 : n = e.key = "" + n), - zn(e) ? (e.value.has_side_effects(i) && u(), f.add(n, e)) : (u(), c.push(e)), o && !a && "string" == typeof n && p.test(n) && (a = !0, - (e = f.has(n) ? f.get(n)[0] : e).key = ve(or, e, { - value: +n - })); - } - }), e(Bt, function(e, n) { - return n.option("side_effects") && e.value && ye(e.value, n) && !z(n.find_parent(vt)) && (e.value = null), - e; - }); - }(function(e, n) { - e.DEFMETHOD("optimize", function(e) { - if (this._optimized) return this; - if (e.has_directive("use asm")) return this; - e = n(this, e); - return e._optimized = !0, e; - }); - }), function() { - function e(e, n) { - e.DEFMETHOD("_codegen", n); - } - var a = !1; - Gn.DEFMETHOD("print", function(e, n) { - var t = this; - function i() { - e.prepend_comments(t), t.add_source_map(e), t._codegen(e), e.append_comments(t); - } - e.push_node(t), n || t.needs_parens(e) ? e.with_parens(i) : i(), e.pop_node(); - }); - var n = Ar({ - inline_script: !1, - shebang: !1, - width: !1 - }); - function t(e, n) { - e.DEFMETHOD("needs_parens", n); - } - function i(e) { - var n = e.parent(); - return !e.has_parens() && Wn(e, !1, !0) ? this.name || !(n instanceof fi) : !!(e.option("webkit") && n instanceof mi && n.expression === this) || (!!(e.option("wrap_iife") && n instanceof pi && n.expression === this) || void 0); - } - function r(e) { - return !e.has_parens() && Wn(e, !0); - } - function o(e) { - e = e.parent(); - return e instanceof ki ? "**" == e.operator && e.left === this : e instanceof pi ? e.expression === this : e instanceof Ft || (e instanceof mi ? e.expression === this : e instanceof tr ? e.tag === this : void 0); - } - function s(e, n) { - return !!e.terminal && ((n instanceof pi || n instanceof mi) && n.expression === e); - } - function f(e, n) { - n = n.parent(); - return n instanceof Ti || (n instanceof ki ? !(n instanceof Si) : n instanceof pi ? n.expression === e : n instanceof Ft || (n instanceof Ei ? n.condition === e : n instanceof mi ? n.expression === e : n instanceof tr ? n.tag === e : n instanceof yi || void 0)); - } - function c(e, t, i, n) { - var r = e.length - 1, o = n, n = a; - e.forEach(function(e, n) { - o && (e instanceof Kn ? "use asm" == e.value && (a = !0) : e instanceof Qn || (e instanceof et && e.body instanceof rr && i.force_semicolon(), - o = !1)), e instanceof Qn || (i.indent(), e.print(i), n == r && t || (i.newline(), - t && i.newline())); - }), a = n; - } - function u(e, n) { - n.print("{"), n.with_indent(function() { - n.append_comments(e, !0); - }), n.print("}"); - } - function l(e, n, t) { - 0 < e.body.length ? n.with_block(function() { - c(e.body, !1, n, t); - }) : u(e, n); - } - function p(t, i) { - return function(e) { - var n = this; - e.print(t), e.space(), e.with_parens(function() { - n.init.print(e), e.space(), e.print(i), e.space(), n.object.print(e); - }), $(n.body, e); - }; - } - function d(e, t) { - t.with_parens(function() { - e.argnames.forEach(function(e, n) { - n && t.comma(), e.print(t); - }), e.rest && (e.argnames.length && t.comma(), t.print("..."), e.rest.print(t)); - }); - } - function h(e, n) { - 1 == e.argnames.length && e.argnames[0] instanceof Ui && !e.rest ? e.argnames[0].print(n) : d(e, n), - n.space(), n.print("=>"), n.space(), e.value ? e.value.print(n) : l(e, n, !0); - } - function v(e, n) { - e.name && (n.space(), e.name.print(n)), d(e, n), n.space(), l(e, n, !0); - } - function m(e) { - e.print("async"), e.space(), e.print("function"), v(this, e); - } - function _(e) { - e.print("async"), e.space(), e.print("function*"), v(this, e); - } - function g(e) { - e.print("function*"), v(this, e); - } - function b(e, n) { - var t = e.value; - wt(t) && (n.print("async"), n.space()), xt(t) && n.print("*"), A(e, n), v(e.value, n); - } - function y(t, i) { - return function(e) { - e.print(t); - var n = this[i]; - n && (e.space(), n.print(e)), e.semicolon(); - }; - } - function w(e, n) { - n.newline(), e.body.forEach(function(e) { - n.indent(), e.print(n), n.newline(); - }); - } - function x(n) { - return function(t) { - t.print(n), t.space(), this.definitions.forEach(function(e, n) { - n && t.comma(), e.print(t); - }); - var e = t.parent(); - e instanceof at && e.init === this || t.semicolon(); - }; - } - function k(e, n, t) { - var i = !1; - t && e.walk(new mr(function(e) { - return !!i || (e instanceof ki && "in" == e.operator ? i = !0 : e instanceof vt && (!yt(e) || !e.value) || void 0); - })), e.print(n, i); - } - function E(e, n) { - if (n.option("annotations") && e.pure) { - var t, i = 0, r = e; - do { - if (t = r, (r = n.parent(i++)) instanceof pi && r.expression === t) return; - } while (r instanceof mi && r.expression === t); - n.print("string" == typeof e.pure ? "/*" + e.pure + "*/" : "/*@__PURE__*/"); - } - } - function S(e, t) { - (e.expression instanceof pi || e.expression instanceof _t) && t.add_mapping(e.start), - t.with_parens(function() { - e.args.forEach(function(e, n) { - n && t.comma(), e.print(t); - }); - }); - } - function T(e, t, i) { - var n = e.properties; - 0 < n.length ? t.with_block(function() { - n.forEach(function(e, n) { - n && (i || t.print(","), t.newline()), t.indent(), e.print(t); - }), t.newline(); - }) : u(e, t); - } - function A(e, n) { - var t = e.key; - if (t instanceof Gn) return n.with_square(function() { - t.print(n); - }); - var i = e.start && e.start.quote; - if (n.option("quote_keys") || i && n.option("keep_quoted_props")) n.print_string(t, i); else if ("" + +t == t && 0 <= t) n.print(q(t)); else if (e.private) n.print_name(t); else { - if (j[t] ? !n.option("ie") : gr(t)) return n.print_name(t), t; - n.print_string(t, i); - } - } - function D(n) { - return function(e) { - this.static && (e.print("static"), e.space()), e.print(n), e.space(), A(this, e), - v(this.value, e); - }; - } - function O(e) { - var n = e.definition(); - return n && n.mangled_name || e.name; - } - function $(e, n) { - n.option("braces") && !(e instanceof ii || e instanceof ri) ? C(e, n) : e instanceof Qn ? n.force_semicolon() : (n.space(), - e.print(n)); - } - function z(e, n) { - return 0 < e.args.length || n.option("beautify"); - } - function q(e) { - var n, t, i = e.toString(10).replace(/^0\./, ".").replace("e+", "e"), r = [ i ]; - return Math.floor(e) === e && (e < 0 ? r.push("-0x" + (-e).toString(16).toLowerCase()) : r.push("0x" + e.toString(16).toLowerCase())), - (n = /^\.0+/.exec(i)) ? (t = n[0].length, e = i.slice(t), r.push(e + "e-" + (e.length + t - 1))) : (n = /0+$/.exec(i)) ? (t = n[0].length, - r.push(i.slice(0, -t) + "e" + t)) : (n = /^(\d)\.(\d+)e(-?\d+)$/.exec(i)) && r.push(n[1] + n[2] + "e" + (n[3] - n[2].length)), - function(e) { - for (var n = e[0], t = n.length, i = 1; i < e.length; ++i) e[i].length < t && (t = (n = e[i]).length); - return n; - }(r); - } - function C(e, n) { - n.space(), e instanceof Qn ? u(e, n) : e instanceof rt ? e.print(n) : n.with_block(function() { - n.indent(), e.print(n), n.newline(); - }); - } - function M(e, n) { - e.forEach(function(e) { - e.DEFMETHOD("add_source_map", n); - }); - } - Gn.DEFMETHOD("print_to_string", function(e) { - if (e) { - e = Ar(e); - return this.print(e), e.get(); - } - return this.print(n), n.reset(); - }), t(Gn, Fn), t(Tt, i), t(At, i), t(Pt, i), t(Dt, i), t(Ot, i), t(Ci, r), t(Ti, o), - t(yi, o), t(hi, function(e) { - e = e.parent(); - return e instanceof Di || yt(e) && e.value === this || e instanceof Ti || e instanceof ki || e instanceof pi || e instanceof Ft || e instanceof Nt || e instanceof Ei || e instanceof li || e instanceof zi || e instanceof fi || e instanceof ae || e instanceof Mi || e instanceof mi && e.expression === this || e instanceof bi || e instanceof tr && e.tag === this || e instanceof yi || e instanceof ai || e instanceof Ai; - }), t(ki, function(e) { - var n = e.parent(); - if (n instanceof Ti) return !0; - if (n instanceof ki) { - var t = n.operator, i = xr[t], r = this.operator, e = xr[r]; - return e < i || "??" == t && ("&&" == r || "||" == r) || i == e && this === n["**" == t ? "left" : "right"]; - } - return n instanceof pi ? n.expression === this : n instanceof Ft || (n instanceof mi ? n.expression === this : n instanceof tr ? n.tag === this : n instanceof yi || void 0); - }), t(mi, function(e) { - e = e.parent(); - return e instanceof di && e.expression === this && "Call" == vi(this).TYPE || s(this, e); - }), t(pi, function(e) { - var n = e.parent(); - if (n instanceof di) return n.expression === this; - if (e.option("webkit") && this.expression instanceof Dt && n instanceof mi && n.expression === this) { - e = e.parent(1); - if (e instanceof Si && e.left === n) return !0; - } - return s(this, n); - }), t(di, function(e) { - if (z(this, e)) return !1; - e = e.parent(); - return e instanceof pi ? e.expression === this : e instanceof mi || (e instanceof tr ? e.tag === this : void 0); - }), t(or, function(e) { - if (!e.option("galio")) return !1; - e = e.parent(); - return e instanceof mi && e.expression === this && /^0/.test(q(this.value)); - }), t(Et, function(e) { - return f(this, e); - }), t(Si, function(e) { - return !!f(this, e) || (e.option("v8") ? this.left instanceof Oi : this.left instanceof qi ? r(e) : void 0); - }), t(St, function(e) { - return f(this, e); - }), t(Ei, function(e) { - return f(this, e); - }), t(Ai, function(e) { - return f(this, e); - }), e(Kn, function(e) { - var n = this.quote, t = this.value; - switch (e.option("quote_style")) { - case 0: - case 2: - -1 == t.indexOf('"') && (n = '"'); - break; - - case 1: - -1 == t.indexOf("'") && (n = "'"); - } - e.print(n + t + n), e.semicolon(); - }), e(Xn, function(e) { - e.print("debugger"), e.semicolon(); - }), e(mt, function(e) { - c(this.body, !0, e, !0), e.print(""); - }), e(ot, function(e) { - this.label.print(e), e.colon(), this.body.print(e); - }), e(et, function(e) { - this.body.print(e), e.semicolon(); - }), e(rt, function(e) { - l(this, e); - }), e(Qn, function(e) { - e.semicolon(); - }), e(ft, function(e) { - var n = this; - e.print("do"), C(n.body, e), e.space(), e.print("while"), e.space(), e.with_parens(function() { - n.condition.print(e); - }), e.semicolon(); - }), e(ct, function(e) { - var n = this; - e.print("while"), e.space(), e.with_parens(function() { - n.condition.print(e); - }), $(n.body, e); - }), e(ut, function(e) { - var n = this; - e.print("for"), e.space(), e.with_parens(function() { - n.init ? (n.init instanceof ti ? n.init.print(e) : k(n.init, e, !0), e.print(";"), - e.space()) : e.print(";"), n.condition ? (n.condition.print(e), e.print(";"), e.space()) : e.print(";"), - n.step && n.step.print(e); - }), $(n.body, e); - }), e(dt, p("for await", "of")), e(pt, p("for", "in")), e(ae, p("for", "of")), e(ht, function(e) { - var n = this; - e.print("with"), e.space(), e.with_parens(function() { - n.expression.print(e); - }), $(n.body, e); - }), e(si, function(e) { - e.print("export"), e.space(), this.body.print(e); - }), e(fi, function(e) { - e.print("export"), e.space(), e.print("default"), e.space(); - var n = this.body; - n.print(e), n instanceof Pt && !n.name || n instanceof jt || n instanceof $t || n instanceof bt && !n.name && !yt(n) || e.semicolon(); - }), e(ce, function(t) { - var i = this; - t.print("export"), t.space(); - var n = i.keys.length; - function r(e) { - var n = i.aliases[e], e = i.keys[e]; - t.print_name(e), n != e && (t.space(), t.print("as"), t.space(), t.print_name(n)); - } - 0 == n ? u(i, t) : "*" == i.keys[0] ? r(0) : t.with_block(function() { - t.indent(), r(0); - for (var e = 1; e < n; e++) t.print(","), t.newline(), t.indent(), r(e); - t.newline(); - }), t.space(), t.print("from"), t.space(), t.print_string(i.path, i.quote), t.semicolon(); - }), e(ci, function(e) { - e.print("export"), e.space(), T(this, e), e.semicolon(); - }), e(ui, function(e) { - var n = this; - e.print("import"), e.space(), n.default && n.default.print(e), n.all && (n.default && e.comma(), - n.all.print(e)), n.properties && (n.default && e.comma(), T(n, e)), (n.all || n.default || n.properties) && (e.space(), - e.print("from"), e.space()), e.print_string(n.path, n.quote), e.semicolon(); - }), e(Et, function(e) { - h(this, e); - }), e(St, function(e) { - e.print("async"), e.space(), h(this, e); - }), e(_t, function(e) { - e.print("function"), v(this, e); - }), e(zt, m), e(Tt, m), e(qt, _), e(At, _), e(Mt, g), e(Ot, g), e(Ft, function(e) { - e.print("class"), this.name && (e.space(), this.name.print(e)), this.extends && (e.space(), - e.print("extends"), e.space(), this.extends.print(e)), e.space(), T(this, e, !0); - }), e(It, function(e) { - this.static && (e.print("static"), e.space()), A(this, e), this.value && (e.space(), - e.print("="), e.space(), this.value.print(e)), e.semicolon(); - }), e(se, D("get")), e(fe, D("set")), e(Ht, function(e) { - this.static && (e.print("static"), e.space()), b(this, e); - }), e(Bt, y("return", "value")), e(Lt, y("throw", "value")), e(Vt, y("break", "label")), - e(Wt, y("continue", "label")), e(Gt, function(e) { - var n = this; - e.print("if"), e.space(), e.with_parens(function() { - n.condition.print(e); - }), n.alternative ? (function(e, n) { - var t = e.body; - if (n.option("braces") && !(t instanceof ii || t instanceof ri) || n.option("ie") && t instanceof ft) return C(t, n); - if (!t) return n.force_semicolon(); - for (;;) if (t instanceof Gt) { - if (!t.alternative) return C(e.body, n); - t = t.alternative; - } else { - if (!(t instanceof F)) break; - t = t.body; - } - $(e.body, n); - }(n, e), e.space(), e.print("else"), n.alternative instanceof Gt ? (e.space(), n.alternative.print(e)) : $(n.alternative, e)) : $(n.body, e); - }), e(Jt, function(t) { - var e = this; - t.print("switch"), t.space(), t.with_parens(function() { - e.expression.print(t); - }), t.space(); - var i = e.body.length - 1; - i < 0 ? u(e, t) : t.with_block(function() { - e.body.forEach(function(e, n) { - t.indent(!0), e.print(t), n < i && 0 < e.body.length && t.newline(); - }); - }); - }), e(Kt, function(e) { - e.print("default:"), w(this, e); - }), e(Qt, function(e) { - e.print("case"), e.space(), this.expression.print(e), e.print(":"), w(this, e); - }), e(Zt, function(e) { - e.print("try"), e.space(), l(this, e), this.bcatch && (e.space(), this.bcatch.print(e)), - this.bfinally && (e.space(), this.bfinally.print(e)); - }), e(ei, function(e) { - var n = this; - e.print("catch"), n.argname && (e.space(), e.with_parens(function() { - n.argname.print(e); - })), e.space(), l(n, e); - }), e(ni, function(e) { - e.print("finally"), e.space(), l(this, e); - }), e(ii, x("const")), e(ri, x("let")), e(oi, x("var")), e(ai, function(e) { - var n; - this.name.print(e), this.value && (e.space(), e.print("="), e.space(), n = (n = e.parent(1)) instanceof ut || n instanceof lt, - k(this.value, e, n)); - }), e(li, function(e) { - this.name.print(e), e.space(), e.print("="), e.space(), this.value.print(e); - }), e(pi, function(e) { - E(this, e), this.expression.print(e), this.optional && e.print("?."), S(this, e); - }), e(di, function(e) { - E(this, e), e.print("new"), e.space(), this.expression.print(e), z(this, e) && S(this, e); - }), e(hi, function(t) { - this.expressions.forEach(function(e, n) { - 0 < n && (t.comma(), t.should_break() && (t.newline(), t.indent())), e.print(t); - }); - }), e(_i, function(e) { - var n = this.expression; - n.print(e); - var t = this.property; - e.option("ie") && j[t] ? (e.print(this.optional ? "?.[" : "["), e.add_mapping(this.end), - e.print_string(t), e.print("]")) : (n instanceof or && !/[ex.)]/i.test(e.last()) && e.print("."), - e.print(this.optional ? "?." : "."), e.add_mapping(this.end), e.print_name(t)); - }), e(gi, function(e) { - this.expression.print(e), e.print(this.optional ? "?.[" : "["), this.property.print(e), - e.print("]"); - }), e(bi, function(e) { - e.print("..."), this.expression.print(e); - }), e(wi, function(e) { - var n = this.operator, t = this.expression; - e.print(n), (/^[a-z]/i.test(n) || /[+-]$/.test(n) && t instanceof wi && /^[+-]/.test(t.operator)) && e.space(), - t.print(e); - }), e(xi, function(e) { - this.expression.print(e), e.print(this.operator); - }), e(ki, function(e) { - this.left.print(e), e.space(), e.print(this.operator), e.space(), this.right.print(e); - }), e(Ei, function(e) { - this.condition.print(e), e.space(), e.print("?"), e.space(), this.consequent.print(e), - e.space(), e.colon(), this.alternative.print(e); - }), e(Ti, function(e) { - e.print("await"), e.space(), this.expression.print(e); - }), e(Ai, function(e) { - e.print(this.nested ? "yield*" : "yield"), this.expression && (e.space(), this.expression.print(e)); - }), e(Di, function(t) { - var e = this.elements, i = e.length; - t.with_square(0 < i ? function() { - t.space(), e.forEach(function(e, n) { - n && t.comma(), e.print(t), n === i - 1 && e instanceof lr && t.comma(); - }), t.space(); - } : Mn); - }), e($i, function(t) { - var e = this.elements, n = e.length, i = this.rest; - t.with_square(n || i ? function() { - t.space(), e.forEach(function(e, n) { - n && t.comma(), e.print(t); - }), i ? (n && t.comma(), t.print("..."), i.print(t)) : e[n - 1] instanceof lr && t.comma(), - t.space(); - } : Mn); - }), e(zi, function(e) { - var n = A(this, e), t = this.value; - if (n) if (t instanceof li) { - if (t.name instanceof Ii && n == O(t.name)) return e.space(), e.print("="), e.space(), - void t.value.print(e); - } else if (t instanceof Ii && n == O(t)) return; - e.colon(), t.print(e); - }), e(qi, function(t) { - var e = this.properties, n = e.length, i = this.rest; - n || i ? t.with_block(function() { - e.forEach(function(e, n) { - n && (t.print(","), t.newline()), t.indent(), e.print(t); - }), i && (n && (t.print(","), t.newline()), t.indent(), t.print("..."), i.print(t)), - t.newline(); - }) : u(this, t); - }), e(Ci, function(e) { - T(this, e); - }), e(Fi, function(e) { - A(this, e), e.colon(), this.value.print(e); - }), e(ji, function(e) { - b(this, e); - }), e(Ni, D("get")), e(Pi, D("set")), e(Ii, function(e) { - e.print_name(O(this)); - }), e(Ki, function(e) { - var n = O(this); - e.print_name(n); - var t = this.alias; - t != n && (e.space(), e.print("as"), e.space(), e.print_name(t)); - }), e(Ri, function(e) { - var n = O(this), t = this.key; - t && t != n && (e.print_name(t), e.space(), e.print("as"), e.space()), e.print_name(n); - }), e(lr, Mn), e(tr, function(e) { - this.tag && this.tag.print(e), e.print("`"); - for (var n = 0; n < this.expressions.length; n++) e.print(this.strings[n]), e.print("${"), - this.expressions[n].print(e), e.print("}"); - e.print(this.strings[n]), e.print("`"); - }), e(ir, function(e) { - e.print("" + this.value); - }), e(rr, function(e) { - e.print_string(this.value, this.quote); - }), e(or, function(e) { - var n = this.start; - a && n && null != n.raw ? e.print(n.raw) : e.print(q(this.value)); - }), e(sr, function(e) { - var n = this.value, t = n.toString(), i = t.lastIndexOf("/"); - n.raw_source ? t = "/" + n.raw_source + t.slice(i) : 1 == i ? t = "/(?:)" + t.slice(i) : t.indexOf("/", 1) < i && (t = "/" + t.slice(1, i).replace(/\\\\|[^/]?\//g, function(e) { - return "\\" == e[0] ? e : e.slice(0, -1) + "\\/"; - }) + t.slice(i)), e.print(e.to_utf8(t).replace(/\\(?:\0(?![0-9])|[^\0])/g, function(e) { - switch (e[1]) { - case "\n": - return "\\n"; - - case "\r": - return "\\r"; - - case "\t": - return "\t"; - - case "\b": - return "\b"; - - case "\f": - return "\f"; - - case "\0": - return "\0"; - - case "\v": - return "\v"; - - case "\u2028": - return "\\u2028"; - - case "\u2029": - return "\\u2029"; - - default: - return e; - } - }).replace(/[\n\r\u2028\u2029]/g, function(e) { - switch (e) { - case "\n": - return "\\n"; - - case "\r": - return "\\r"; - - case "\u2028": - return "\\u2028"; - - case "\u2029": - return "\\u2029"; - } - })); - t = e.parent(); - t instanceof ki && /^in/.test(t.operator) && t.left === this && e.print(" "); - }), M([ Gn, ot ], Mn), M([ Di, rt, ei, ir, Xn, ti, Oi, ni, Yt, _t, di, Ci, F, Ii, Jt, Xt, Zt ], function(e) { - e.add_mapping(this.start); - }), M([ Nt, zi, Mi ], function(e) { - "string" == typeof this.key && e.add_mapping(this.start, this.key); - }); - }(); - var X = e("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"), K = X.reduce(function(e, n, t) { - return e[n] = t, e; - }, Object.create(null)); - function Q(e) { - var n = ""; - e = Math.abs(e) << 1 | e >>> 31; - do { - var t = 31 & e; - } while ((e >>>= 5) && (t |= 32), n += X[t], e); - return n; - } - function Z() { - var n = Object.create(null), t = []; - return t.index = function(e) { - return Vn(n, e) || (n[e] = t.length, t.push(e)), n[e]; - }, t; - } - function ee(l) { - var a, s = Z(), o = l.includeSources && Object.create(null), f = Z(), c = ""; - l.orig && Object.keys(l.orig).forEach(function(e) { - var n = l.orig[e], t = [ 0, 0, 1, 0, 0 ]; - if (l.orig[e] = { - names: n.names, - mappings: n.mappings.split(/;/).map(function(e) { - return t[0] = 0, e.split(/,/).map(function(e) { - return t.slice(0, function(e, n) { - for (var t = 0, i = 0, r = 0, o = 0; r < n.length; r++) { - var a = K[n[r]]; - t += (31 & a) << i, 32 & a ? i += 5 : (e[o++] += 1 & t ? 2147483648 | -(t >> 1) : t >> 1, - t = i = 0); - } - return o; - }(t, e)); - }); - }), - sources: n.sources - }, o && n.sourcesContent) for (var i = 0; i < n.sources.length; i++) { - var r = n.sourcesContent[i]; - r && (o[n.sources[i]] = r); - } - }); - var u = 1, p = 0, d = 0, h = 1, v = 0, m = 0; - return { - add: l.orig ? function(e, n, t, i, r, o) { - var a = l.orig[e]; - if (a) { - var s, f = a.mappings[i - 1]; - if (!f) return; - for (var c = 0; c < f.length; c++) { - var u = f[c][0]; - if (u <= r && (s = f[c]), r <= u) break; - } - !s || s.length < 4 ? e = null : (e = a.sources[s[1]], i = s[2], r = s[3], 4 < s.length && (o = a.names[s[4]])); - } - _(e, n, t, i, r, o); - } : _, - setSourceContent: o ? function(e, n) { - e in o || (o[e] = n); - } : Mn, - toString: function() { - return JSON.stringify({ - version: 3, - file: l.filename || void 0, - sourceRoot: l.root || void 0, - sources: s, - sourcesContent: o ? s.map(function(e) { - return o[e] || null; - }) : void 0, - names: f, - mappings: c - }); - } - }; - function _(e, n, t, i, r, o) { - if (null != a || null != e) { - if (a = e, u < n) for (p = 0; c += ";", ++u < n; ); else c && (c += ","); - c += Q(t - p), p = t, null != e && (e = s.index(e), c += Q(e - d), d = e, c += Q(i - h), - h = i, c += Q(r - v), v = r, l.names && null != o && (o = f.index(o), c += Q(o - m), - m = o)); - } - } - } - !function() { - var i = { - Program: function(e) { - return new mt({ - start: s(e), - end: f(e), - body: r(e.body.map(l)) - }); - }, - ArrowFunctionExpression: function(e) { - var n = [], t = null; - e.params.forEach(function(e) { - "RestElement" == e.type ? t = l(e.argument) : n.push(l(e)); - }); - var i = new (e.async ? St : Et)({ - start: s(e), - end: f(e), - argnames: n, - rest: t - }), e = l(e.body); - return e instanceof rt ? (i.body = r(e.body), i.value = null) : (i.body = [], i.value = e), - i; - }, - FunctionDeclaration: function(e) { - var n = e.async ? e.generator ? qt : zt : e.generator ? Mt : Ct, t = [], i = null; - return e.params.forEach(function(e) { - "RestElement" == e.type ? i = l(e.argument) : t.push(l(e)); - }), new n({ - start: s(e), - end: f(e), - name: l(e.id), - argnames: t, - rest: i, - body: r(l(e.body).body) - }); - }, - FunctionExpression: function(e) { - var n = e.async ? e.generator ? At : Tt : e.generator ? Ot : Dt, t = [], i = null; - return e.params.forEach(function(e) { - "RestElement" == e.type ? i = l(e.argument) : t.push(l(e)); - }), new n({ - start: s(e), - end: f(e), - name: l(e.id), - argnames: t, - rest: i, - body: r(l(e.body).body) - }); - }, - ClassDeclaration: function(e) { - return new jt({ - start: s(e), - end: f(e), - name: l(e.id), - extends: l(e.superClass), - properties: e.body.body.map(l) - }); - }, - ClassExpression: function(e) { - return new Pt({ - start: s(e), - end: f(e), - name: l(e.id), - extends: l(e.superClass), - properties: e.body.body.map(l) - }); - }, - MethodDefinition: function(e) { - var n = e.key, t = !1, n = e.computed ? l(n) : "PrivateIdentifier" == n.type ? (t = !0, - "#" + n.name) : a(n), i = Ht, r = l(e.value); - switch (e.kind) { - case "get": - i = se, r = new gt(r); - break; - - case "set": - i = fe, r = new gt(r); - } - return new i({ - start: s(e), - end: f(e), - key: n, - private: t, - static: e.static, - value: r - }); - }, - PropertyDefinition: function(e) { - var n = e.key, t = !1, n = e.computed ? l(n) : "PrivateIdentifier" == n.type ? (t = !0, - "#" + n.name) : a(n); - return new It({ - start: s(e), - end: f(e), - key: n, - private: t, - static: e.static, - value: l(e.value) - }); - }, - ForOfStatement: function(e) { - return new (e.await ? dt : ae)({ - start: s(e), - end: f(e), - init: l(e.left), - object: l(e.right), - body: l(e.body) - }); - }, - TryStatement: function(e) { - var n = e.handlers || [ e.handler ]; - if (1 < n.length || e.guardedHandlers && e.guardedHandlers.length) throw new Error("Multiple catch clauses are not supported."); - return new Zt({ - start: s(e), - end: f(e), - body: l(e.block).body, - bcatch: l(n[0]), - bfinally: e.finalizer ? new ni(l(e.finalizer)) : null - }); - }, - Property: function(e) { - var n = (e.computed ? l : a)(e.key), n = { - start: s(e), - end: f(e), - key: n, - value: l(e.value) - }; - return "init" == e.kind ? new (e.method ? ji : Fi)(n) : (n.value = new gt(n.value), - "get" == e.kind ? new Ni(n) : "set" == e.kind ? new Pi(n) : void 0); - }, - ArrayExpression: function(e) { - return new Di({ - start: s(e), - end: f(e), - elements: e.elements.map(function(e) { - return null === e ? new lr() : l(e); - }) - }); - }, - ArrayPattern: function(e) { - var n = [], t = null; - return e.elements.forEach(function(e) { - null === e ? n.push(new lr()) : "RestElement" == e.type ? t = l(e.argument) : n.push(l(e)); - }), new $i({ - start: s(e), - end: f(e), - elements: n, - rest: t - }); - }, - ObjectPattern: function(e) { - var n = [], t = null; - return e.properties.forEach(function(e) { - "RestElement" == e.type ? t = l(e.argument) : n.push(new zi(l(e))); - }), new qi({ - start: s(e), - end: f(e), - properties: n, - rest: t - }); - }, - MemberExpression: function(e) { - return new (e.computed ? gi : _i)({ - start: s(e), - end: f(e), - optional: e.optional, - expression: l(e.object), - property: e.computed ? l(e.property) : e.property.name - }); - }, - MetaProperty: function(e) { - var n = l(e.meta), t = a(e.property); - return "new" == n.name && "target" == t ? new nr({ - start: s(e), - end: f(e), - name: "new.target" - }) : new _i({ - start: s(e), - end: f(e), - expression: n, - property: t - }); - }, - SwitchCase: function(e) { - return new (e.test ? Qt : Kt)({ - start: s(e), - end: f(e), - expression: l(e.test), - body: e.consequent.map(l) - }); - }, - ExportAllDeclaration: function(e) { - var n = e.exported ? a(e.exported) : "*"; - return new ce({ - start: s(e), - end: f(e), - aliases: [ n ], - keys: [ "*" ], - path: e.source.value - }); - }, - ExportDefaultDeclaration: function(e) { - var n = l(e.declaration); - if (!n.name) switch (n.CTOR) { - case zt: - n = new Tt(n); - break; - - case qt: - n = new At(n); - break; - - case jt: - n = new Pt(n); - break; - - case Ct: - n = new Dt(n); - break; - - case Mt: - n = new Ot(n); - } - return new fi({ - start: s(e), - end: f(e), - body: n - }); - }, - ExportNamedDeclaration: function(e) { - if (e.declaration) return new si({ - start: s(e), - end: f(e), - body: l(e.declaration) - }); - if (e.source) { - var n = [], t = []; - return e.specifiers.forEach(function(e) { - n.push(a(e.exported)), t.push(a(e.local)); - }), new ce({ - start: s(e), - end: f(e), - aliases: n, - keys: t, - path: e.source.value - }); - } - return new ci({ - start: s(e), - end: f(e), - properties: e.specifiers.map(function(e) { - var n = new Ki(l(e.local)); - return n.alias = a(e.exported), n; - }) - }); - }, - ImportDeclaration: function(e) { - var t = null, i = null, r = null; - return e.specifiers.forEach(function(e) { - var n = new Ri(l(e.local)); - switch (e.type) { - case "ImportDefaultSpecifier": - (i = n).key = ""; - break; - - case "ImportNamespaceSpecifier": - (t = n).key = "*"; - break; - - default: - n.key = e.imported.name || syn.name, (r = r || []).push(n); - } - }), new ui({ - start: s(e), - end: f(e), - all: t, - default: i, - properties: r, - path: e.source.value - }); - }, - ImportExpression: function(e) { - var n = s(e), t = l(e.source); - return new pi({ - start: n, - end: f(e), - expression: new Xi({ - start: n, - end: t.start, - name: "import" - }), - args: [ t ] - }); - }, - VariableDeclaration: function(e) { - return new ({ - const: ii, - let: ri - }[e.kind] || oi)({ - start: s(e), - end: f(e), - definitions: e.declarations.map(l) - }); - }, - Literal: function(e) { - var n = { - start: s(e), - end: f(e) - }; - if (e.bigint) return n.value = e.bigint.toLowerCase() + "n", new ar(n); - var t = e.value; - if (null === t) return new fr(n); - var i = e.regex; - if (i && i.pattern) return n.value = new RegExp(i.pattern, i.flags), n.value.raw_source = i.pattern, - new sr(n); - if (i) return n.value = e.regex && e.raw ? e.raw : t, new sr(n); - switch (typeof t) { - case "string": - return n.value = t, new rr(n); - - case "number": - if (isNaN(t)) return new cr(n); - var r, o = isFinite(t) ? (n.value = (r = 1 / t < 0) ? -t : t, new or(n)) : (r = t < 0, - new pr(n)); - return r ? new wi({ - start: n.start, - end: n.end, - operator: "-", - expression: o - }) : o; - - case "boolean": - return new (t ? vr : hr)(n); - } - }, - TemplateLiteral: function(e) { - return new tr({ - start: s(e), - end: f(e), - expressions: e.expressions.map(l), - strings: e.quasis.map(function(e) { - return e.value.raw; - }) - }); - }, - TaggedTemplateExpression: function(e) { - var n = l(e.quasi); - return n.start = s(e), n.end = f(e), n.tag = l(e.tag), n; - }, - Identifier: function(e) { - for (var n, t = u.length - 1; "ArrayPattern" == (n = u[--t]).type || "AssignmentPattern" == n.type && n.left === u[t + 1] || "ObjectPattern" == n.type || "Property" == n.type && n.value === u[t + 1] || "VariableDeclarator" == n.type && n.id === u[t + 1]; ); - var i = Xi; - switch (n.type) { - case "ArrowFunctionExpression": - n.body !== u[t + 1] && (i = Ui); - break; - - case "BreakStatement": - case "ContinueStatement": - i = pe; - break; - - case "CatchClause": - i = Ji; - break; - - case "ClassDeclaration": - n.id === u[t + 1] && (i = ue); - break; - - case "ClassExpression": - n.id === u[t + 1] && (i = Gi); - break; - - case "FunctionDeclaration": - i = n.id === u[t + 1] ? Vi : Ui; - break; - - case "FunctionExpression": - i = n.id === u[t + 1] ? Wi : Ui; - break; - - case "LabeledStatement": - i = le; - break; - - case "VariableDeclaration": - i = { - const: Yi, - let: Bi - }[n.kind] || Li; - } - return new i({ - start: s(e), - end: f(e), - name: e.name - }); - }, - Super: function(e) { - return new Zi({ - start: s(e), - end: f(e), - name: "super" - }); - }, - ThisExpression: function(e) { - return new er({ - start: s(e), - end: f(e), - name: "this" - }); - }, - ParenthesizedExpression: function(e) { - var n = l(e.expression); - return n.start.parens || (n.start.parens = []), n.start.parens.push(s(e)), n.end.parens || (n.end.parens = []), - n.end.parens.push(f(e)), n; - }, - ChainExpression: function(e) { - e = l(e.expression); - return e.terminal = !0, e; - } - }; - function e(i) { - return function(e) { - var n = e.key instanceof Gn, t = n ? h(e.key) : e.private ? { - type: "PrivateIdentifier", - name: e.key.slice(1) - } : { - type: "Literal", - value: e.key - }; - return { - type: "MethodDefinition", - kind: i, - computed: n, - key: t, - static: e.static, - value: h(e.value) - }; - }; - } - function n(n) { - return function(e) { - return { - type: "ForOfStatement", - await: n, - left: h(e.init), - right: h(e.object), - body: h(e.body) - }; - }; - } - function t(e) { - var n = e.value; - return "number" == typeof n && (n < 0 || 0 === n && 1 / n < 0) ? { - type: "UnaryExpression", - operator: "-", - prefix: !0, - argument: { - type: "Literal", - value: -n, - raw: e.start.raw - } - } : { - type: "Literal", - value: n, - raw: e.start.raw - }; - } - function r(e) { - for (var n = 0; n < e.length; n++) { - var t = e[n]; - if (!(t instanceof et)) break; - var i = t.body; - if (!(i instanceof rr)) break; - if (t.start.pos !== i.start.pos) break; - e[n] = new Kn(i); - } - return e; - } - function o(e) { - if ("Literal" == e.type) return null != e.raw ? e.raw : e.value + ""; - } - function s(e) { - var n = e.loc, t = n && n.start, i = e.range; - return new Y({ - file: n && n.source, - line: t && t.line, - col: t && t.column, - pos: i ? i[0] : e.start, - endline: t && t.line, - endcol: t && t.column, - endpos: i ? i[0] : e.start, - raw: o(e) - }); - } - function f(e) { - var n = e.loc, t = n && n.end, i = e.range; - return new Y({ - file: n && n.source, - line: t && t.line, - col: t && t.column, - pos: i ? i[1] : e.end, - endline: t && t.line, - endcol: t && t.column, - endpos: i ? i[1] : e.end, - raw: o(e) - }); - } - function a(e) { - return "" + e["Identifier" == e.type ? "name" : "value"]; - } - function c(e, n, t) { - var o = [ "start: my_start_token(M)", "end: my_end_token(M)" ], a = [ "type: " + JSON.stringify(e) ]; - t && t.split(/\s*,\s*/).forEach(function(e) { - var n = /([a-z0-9$_]+)(=|@|>|%)([a-z0-9$_]+)/i.exec(e); - if (!n) throw new Error("Can't understand property map: " + e); - var t = n[1], i = n[2], r = n[3]; - switch (i) { - case "@": - o.push(r + ": M." + t + ".map(from_moz)"), a.push(t + ": M." + r + ".map(to_moz)"); - break; - - case ">": - o.push(r + ": from_moz(M." + t + ")"), a.push(t + ": to_moz(M." + r + ")"); - break; - - case "=": - o.push(r + ": M." + t), a.push(t + ": M." + r); - break; - - case "%": - o.push(r + ": from_moz(M." + t + ").body"), a.push(t + ": to_moz_block(M)"); - break; - - default: - throw new Error("Can't understand operator in propmap: " + e); - } - }), i[e] = new Function("U2", "my_start_token", "my_end_token", "from_moz", [ "return function From_Moz_" + e + "(M) {", " return new U2.AST_" + n.TYPE + "({", o.join(",\n"), " });", "};" ].join("\n"))(_, s, f, l), - d(n, new Function("to_moz", "to_moz_block", "to_moz_scope", [ "return function To_Moz_" + e + "(M) {", " return {", a.join(",\n"), " };", "};" ].join("\n"))(h, v, m)); - } - i.UpdateExpression = i.UnaryExpression = function(e) { - return new (("prefix" in e ? e.prefix : "UnaryExpression" == e.type) ? wi : xi)({ - start: s(e), - end: f(e), - operator: e.operator, - expression: l(e.argument) - }); - }, c("EmptyStatement", Qn), c("ExpressionStatement", et, "expression>body"), c("BlockStatement", rt, "body@body"), - c("IfStatement", Gt, "test>condition, consequent>body, alternate>alternative"), - c("LabeledStatement", ot, "label>label, body>body"), c("BreakStatement", Vt, "label>label"), - c("ContinueStatement", Wt, "label>label"), c("WithStatement", ht, "object>expression, body>body"), - c("SwitchStatement", Jt, "discriminant>expression, cases@body"), c("ReturnStatement", Bt, "argument>value"), - c("ThrowStatement", Lt, "argument>value"), c("WhileStatement", ct, "test>condition, body>body"), - c("DoWhileStatement", ft, "test>condition, body>body"), c("ForStatement", ut, "init>init, test>condition, update>step, body>body"), - c("ForInStatement", pt, "left>init, right>object, body>body"), c("DebuggerStatement", Xn), - c("VariableDeclarator", ai, "id>name, init>value"), c("CatchClause", ei, "param>argname, body%body"), - c("BinaryExpression", ki, "operator=operator, left>left, right>right"), c("LogicalExpression", ki, "operator=operator, left>left, right>right"), - c("AssignmentExpression", Si, "operator=operator, left>left, right>right"), c("AssignmentPattern", li, "left>name, right>value"), - c("ConditionalExpression", Ei, "test>condition, consequent>consequent, alternate>alternative"), - c("NewExpression", di, "callee>expression, arguments@args, pure=pure"), c("CallExpression", pi, "callee>expression, arguments@args, optional=optional, pure=pure"), - c("SequenceExpression", hi, "expressions@expressions"), c("SpreadElement", bi, "argument>expression"), - c("ObjectExpression", Ci, "properties@properties"), c("AwaitExpression", Ti, "argument>expression"), - c("YieldExpression", Ai, "argument>expression, delegate=nested"), d(mt, function(e) { - return m("Program", e); - }), d($t, function(e) { - var n = e.argnames.map(h); - return e.rest && n.push({ - type: "RestElement", - argument: h(e.rest) - }), { - type: "FunctionDeclaration", - id: h(e.name), - async: wt(e), - generator: xt(e), - params: n, - body: m("BlockStatement", e) - }; - }), d(_t, function(e) { - var n = e.argnames.map(h); - return e.rest && n.push({ - type: "RestElement", - argument: h(e.rest) - }), yt(e) ? { - type: "ArrowFunctionExpression", - async: wt(e), - params: n, - body: e.value ? h(e.value) : m("BlockStatement", e) - } : { - type: "FunctionExpression", - id: h(e.name), - async: wt(e), - generator: xt(e), - params: n, - body: m("BlockStatement", e) - }; - }), d(jt, function(e) { - return { - type: "ClassDeclaration", - id: h(e.name), - superClass: h(e.extends), - body: { - type: "ClassBody", - body: e.properties.map(h) - } - }; - }), d(Pt, function(e) { - return { - type: "ClassExpression", - id: h(e.name), - superClass: h(e.extends), - body: { - type: "ClassBody", - body: e.properties.map(h) - } - }; - }), d(se, e("get")), d(fe, e("set")), d(Ht, e("method")), d(It, function(e) { - var n = e.key instanceof Gn; - return { - type: "PropertyDefinition", - computed: n, - key: n ? h(e.key) : e.private ? { - type: "PrivateIdentifier", - name: e.key.slice(1) - } : { - type: "Literal", - value: e.key - }, - static: e.static, - value: h(e.value) - }; - }), d(dt, n(!0)), d(ae, n(!1)), d(Kn, function(e) { - return { - type: "ExpressionStatement", - expression: p(e, { - type: "Literal", - value: e.value - }) - }; - }), d(Xt, function(e) { - return { - type: "SwitchCase", - test: h(e.expression), - consequent: e.body.map(h) - }; - }), d(Zt, function(e) { - return { - type: "TryStatement", - block: v(e), - handler: h(e.bcatch), - guardedHandlers: [], - finalizer: h(e.bfinally) - }; - }), d(ei, function(e) { - return { - type: "CatchClause", - param: h(e.argname), - guard: null, - body: v(e) - }; - }), d(si, function(e) { - return { - type: "ExportNamedDeclaration", - declaration: h(e.body) - }; - }), d(fi, function(e) { - return { - type: "ExportDefaultDeclaration", - declaration: h(e.body) - }; - }), d(ce, function(e) { - if ("*" == e.keys[0]) return { - type: "ExportAllDeclaration", - exported: "*" == e.aliases[0] ? null : { - type: "Identifier", - name: e.aliases[0] - }, - source: { - type: "Literal", - value: e.path - } - }; - for (var n = [], t = 0; t < e.aliases.length; t++) n.push({ - type: "ExportSpecifier", - exported: { - type: "Identifier", - name: e.aliases[t] - }, - local: { - type: "Identifier", - name: e.keys[t] - } - }); - return { - type: "ExportNamedDeclaration", - specifiers: n, - source: { - type: "Literal", - value: e.path - } - }; - }), d(ci, function(e) { - return { - type: "ExportNamedDeclaration", - specifiers: e.properties.map(function(e) { - return { - type: "ExportSpecifier", - local: h(e), - exported: { - type: "Identifier", - name: e.alias - } - }; - }) - }; - }), d(ui, function(e) { - var n = e.properties ? e.properties.map(function(e) { - return { - type: "ImportSpecifier", - local: h(e), - imported: { - type: "Identifier", - name: e.key - } - }; - }) : []; - return e.all && n.unshift({ - type: "ImportNamespaceSpecifier", - local: h(e.all) - }), e.default && n.unshift({ - type: "ImportDefaultSpecifier", - local: h(e.default) - }), { - type: "ImportDeclaration", - specifiers: n, - source: { - type: "Literal", - value: e.path - } - }; - }), d(ti, function(e) { - return { - type: "VariableDeclaration", - kind: e.TYPE.toLowerCase(), - declarations: e.definitions.map(h) - }; - }), d(mi, function(e) { - var n = e instanceof gi, n = { - type: "MemberExpression", - object: h(e.expression), - computed: n, - optional: e.optional, - property: n ? h(e.property) : { - type: "Identifier", - name: e.property - } - }; - return e.terminal ? { - type: "ChainExpression", - expression: n - } : n; - }), d(yi, function(e) { - return { - type: "++" == e.operator || "--" == e.operator ? "UpdateExpression" : "UnaryExpression", - operator: e.operator, - prefix: e instanceof wi, - argument: h(e.expression) - }; - }), d(ki, function(e) { - return { - type: "&&" == e.operator || "||" == e.operator ? "LogicalExpression" : "BinaryExpression", - left: h(e.left), - operator: e.operator, - right: h(e.right) - }; - }), d(Di, function(e) { - return { - type: "ArrayExpression", - elements: e.elements.map(h) - }; - }), d($i, function(e) { - var n = e.elements.map(h); - return e.rest && n.push({ - type: "RestElement", - argument: h(e.rest) - }), { - type: "ArrayPattern", - elements: n - }; - }), d(zi, function(e) { - var n = e.key instanceof Gn; - return { - type: "Property", - kind: "init", - computed: n, - key: n ? h(e.key) : { - type: "Literal", - value: e.key - }, - value: h(e.value) - }; - }), d(qi, function(e) { - var n = e.properties.map(h); - return e.rest && n.push({ - type: "RestElement", - argument: h(e.rest) - }), { - type: "ObjectPattern", - properties: n - }; - }), d(Mi, function(e) { - var n, t = e.key instanceof Gn, i = t ? h(e.key) : { - type: "Literal", - value: e.key - }; - return e instanceof Fi ? n = "init" : e instanceof Ni ? n = "get" : e instanceof Pi && (n = "set"), - { - type: "Property", - kind: n, - computed: t, - method: e instanceof ji, - key: i, - value: h(e.value) - }; - }), d(Ii, function(e) { - var n = e.definition(); - return { - type: "Identifier", - name: n && n.mangled_name || e.name - }; - }), d(Zi, function() { - return { - type: "Super" - }; - }), d(er, function() { - return { - type: "ThisExpression" - }; - }), d(nr, function() { - return { - type: "MetaProperty", - meta: { - type: "Identifier", - name: "new" - }, - property: { - type: "Identifier", - name: "target" - } - }; - }), d(sr, function(e) { - var n = e.value.toString().match(/[gimuy]*$/)[0], t = "/" + e.value.raw_source + "/" + n; - return { - type: "Literal", - value: t, - raw: t, - regex: { - pattern: e.value.raw_source, - flags: n - } - }; - }), d(ar, function(e) { - e = e.value; - return { - type: "Literal", - bigint: e.slice(0, -1), - raw: e - }; - }), d(dr, t), d(ir, t), d(fr, t), d(g, function(e) { - return { - type: "Identifier", - name: String(e.value) - }; - }), d(tr, function(e) { - var t = e.strings.length - 1, n = { - type: "TemplateLiteral", - expressions: e.expressions.map(h), - quasis: e.strings.map(function(e, n) { - return { - type: "TemplateElement", - tail: n == t, - value: { - raw: e - } - }; - }) - }; - return e.tag ? { - type: "TaggedTemplateExpression", - tag: h(e.tag), - quasi: n - } : n; - }), it.DEFMETHOD("to_mozilla_ast", rt.prototype.to_mozilla_ast), lr.DEFMETHOD("to_mozilla_ast", Nn), - Gn.DEFMETHOD("to_mozilla_ast", function() { - throw new Error("Cannot convert AST_" + this.TYPE); - }); - var u = null; - function l(e) { - u.push(e); - var n = null; - if (e) { - if (!Vn(i, e.type)) throw new Error("Unsupported type: " + e.type); - n = i[e.type](e); - } - return u.pop(), n; - } - function p(e, n) { - var t = e.start, e = e.end; - return null != t.pos && null != e.endpos && (n.range = [ t.pos, e.endpos ]), t.line && (n.loc = { - start: { - line: t.line, - column: t.col - }, - end: e.endline ? { - line: e.endline, - column: e.endcol - } : null - }, t.file && (n.loc.source = t.file)), n; - } - function d(e, n) { - e.DEFMETHOD("to_mozilla_ast", function() { - return p(this, n(this)); - }); - } - function h(e) { - return null != e ? e.to_mozilla_ast() : null; - } - function v(e) { - return { - type: "BlockStatement", - body: e.body.map(h) - }; - } - function m(e, n) { - var t = n.body.map(h); - return n.body[0] instanceof et && n.body[0].body instanceof rr && t.unshift(h(new Qn(n.body[0]))), - { - type: e, - body: t - }; - } - Gn.from_mozilla_ast = function(e) { - var n = u; - u = []; - e = l(e); - return u = n, e.walk(new mr(function(e) { - if (e instanceof pe) { - for (var n, t, i = 0; (n = this.parent(i)) && !(n instanceof vt); i++) if (n instanceof ot && n.label.name == e.name) { - e.thedef = n.label; - break; - } - e.thedef || (t = e.start, ve("Undefined label " + e.name, t.file, t.line, t.col, t.pos)); - } - })), e; - }; - }(); - var ne, te, ie, re = (ne = [], [ "null", "true", "false", "Infinity", "-Infinity", "undefined" ].forEach(we), - [ Array, Boolean, Date, Error, Function, Math, Number, Object, RegExp, String ].forEach(function(e) { - Object.getOwnPropertyNames(e).map(we), e.prototype && (Object.getOwnPropertyNames(new e()).map(we), - Object.getOwnPropertyNames(e.prototype).map(we)); - }), Bn(ne)); - function we(e) { - ne.push(e); - } - function xe(e, n) { - e instanceof Ei ? (xe(e.consequent, n), xe(e.alternative, n)) : e instanceof hi ? xe(e.tail_node(), n) : e instanceof rr && n(e.value); - } - function ke(n) { - try { - return JSON.parse(n); - } catch (e) { - throw new Error("invalid input source map: " + n); - } - } - function Ee(n, t, e) { - e.forEach(function(e) { - t[e] && ("object" != typeof t[e] && (t[e] = {}), n in t[e] || (t[e][n] = t[n])); - }); - } - function Se(e) { - e && ("props" in e ? e.props instanceof Un || (e.props = Un.fromObject(e.props)) : e.props = new Un()); - } - function Te(e) { - return { - props: e.props.toObject() - }; - } - ie = "undefined" == typeof Buffer ? (te = atob, btoa) : void 0 === Buffer.alloc ? (te = function(e) { - return new Buffer(e, "base64").toString(); - }, function(e) { - return new Buffer(e).toString("base64"); - }) : (te = function(e) { - return Buffer.from(e, "base64").toString(); - }, function(e) { - return Buffer.from(e).toString("base64"); - }), _.Dictionary = Un, _.is_statement = Zn, _.List = In, _.minify = function(i, r) { - try { - (r = oe(r, { - annotations: void 0, - compress: {}, - enclose: !1, - ie: !1, - ie8: !1, - keep_fnames: !1, - mangle: {}, - nameCache: null, - output: {}, - parse: {}, - rename: void 0, - sourceMap: !1, - timings: !1, - toplevel: !1, - v8: !1, - validate: !1, - warnings: !1, - webkit: !1, - wrap: !1 - }, !0)).validate && Gn.enable_validation(); - var e, n = r.timings && { - start: Date.now() - }; - void 0 === r.rename && (r.rename = r.compress && r.mangle), void 0 !== r.annotations && Ee("annotations", r, [ "compress", "output" ]), - r.ie8 && (r.ie = r.ie || r.ie8), r.ie && Ee("ie", r, [ "compress", "mangle", "output" ]), - r.keep_fnames && Ee("keep_fnames", r, [ "compress", "mangle" ]), r.toplevel && Ee("toplevel", r, [ "compress", "mangle" ]), - r.v8 && Ee("v8", r, [ "mangle", "output" ]), r.webkit && Ee("webkit", r, [ "compress", "mangle", "output" ]), - r.mangle && (r.mangle = oe(r.mangle, { - cache: r.nameCache && (r.nameCache.vars || {}), - eval: !1, - ie: !1, - keep_fnames: !1, - properties: !1, - reserved: [], - toplevel: !1, - v8: !1, - webkit: !1 - }, !0), r.mangle.properties && ("object" != typeof r.mangle.properties && (r.mangle.properties = {}), - r.mangle.properties.keep_quoted && (e = r.mangle.properties.reserved, Array.isArray(e) || (e = []), - r.mangle.properties.reserved = e), !r.nameCache || "cache" in r.mangle.properties || (r.mangle.properties.cache = r.nameCache.props || {})), - Se(r.mangle.cache), Se(r.mangle.properties.cache)), r.sourceMap && (r.sourceMap = oe(r.sourceMap, { - content: null, - filename: null, - includeSources: !1, - names: !0, - root: null, - url: null - }, !0)); - var o, t = []; - if (r.warnings && Gn.log_function(function(e) { - t.push(e); - }, "verbose" == r.warnings), n && (n.parse = Date.now()), i instanceof mt) o = i; else { - "string" == typeof i && (i = [ i ]), r.parse = r.parse || {}, r.parse.toplevel = null; - var a, s = r.sourceMap && r.sourceMap.content; - for (u in (s = "string" == typeof s && "inline" != s ? ke(s) : s) && (r.sourceMap.orig = Object.create(null)), - i) Vn(i, u) && (r.parse.filename = u, r.parse.toplevel = o = kr(i[u], r.parse), - "inline" == s ? (a = function(e, n) { - for (var t = n.end.comments_after, i = t.length; 0 <= --i; ) { - var r = t[i]; - if ("comment1" != r.type) break; - r = /^# ([^\s=]+)=(\S+)\s*$/.exec(r.value); - if (!r) break; - if ("sourceMappingURL" == r[1]) { - if (!(r = /^data:application\/json(;.*?)?;base64,(\S+)$/.exec(r[2]))) break; - return te(r[2]); - } - } - Gn.warn("inline source map not found: {name}", { - name: e - }); - }(u, o)) && (r.sourceMap.orig[u] = ke(a)) : s && (r.sourceMap.orig[u] = s)); - } - e && (h = e, o.walk(new mr(function(e) { - e instanceof Nt || e instanceof Mi ? e.start && e.start.quote && d(e.key) : e instanceof gi && xe(e.property, d); - }))), [ "enclose", "wrap" ].forEach(function(e) { - var n, t = r[e]; - t && (n = o.print_to_string().slice(0, -1), o = o[e](t), i[o.start.file] = o.print_to_string().replace(n, "")); - }), r.validate && o.validate_ast(), n && (n.rename = Date.now()), r.rename && (o.figure_out_scope(r.mangle), - o.expand_names(r.mangle)), n && (n.compress = Date.now()), r.compress && (o = new Tr(r.compress).compress(o), - r.validate && o.validate_ast()), n && (n.scope = Date.now()), r.mangle && o.figure_out_scope(r.mangle), - n && (n.mangle = Date.now()), r.mangle && (o.compute_char_frequency(r.mangle), o.mangle_names(r.mangle)), - n && (n.properties = Date.now()), r.mangle && r.mangle.properties && function(e, t) { - t = oe(t, { - builtins: !1, - cache: null, - debug: !1, - keep_quoted: !1, - regex: null, - reserved: null - }, !0); - var n = Object.create(t.builtins ? null : re); - Array.isArray(t.reserved) && t.reserved.forEach(function(e) { - n[e] = !0; - }); - var i, r = -1; - t.cache ? (i = t.cache.props).each(function(e) { - n[e] = !0; - }) : i = new Un(); - var o, a = t.regex, s = !1 !== t.debug; - s && (o = !0 === t.debug ? "" : t.debug); - var f = Object.create(null), c = Object.create(n); - function u(e) { - return !c[e] && !/^-?[0-9]+(\.[0-9]+)?(e[+-][0-9]+)?$/.test(e); - } - function l(e) { - return !n[e] && ((!a || a.test(e)) && (i.has(e) || f[e])); - } - function p(e) { - u(e) && (f[e] = !0), l(e) || (c[e] = !0); - } - function d(e) { - if (!l(e)) return e; - var n, t = i.get(e); - if (!t) { - if (!s || u(n = "_$" + e + "$" + o + "_") && (t = n), !t) for (;!u(t = S(++r)); ); - /^#/.test(e) && (t = "#" + t), i.set(e, t); - } - return t; - } - function h(e) { - e instanceof hi ? h(e.expressions.tail_node()) : e instanceof rr ? e.value = d(e.value) : e instanceof Ei && (h(e.consequent), - h(e.alternative)); - } - e.walk(new mr(function(e) { - if (e instanceof ki) "in" == e.operator && xe(e.left, p); else if ("Call" == e.TYPE) { - var n = e.expression; - if (n instanceof _i) switch (n.property) { - case "defineProperty": - case "getOwnPropertyDescriptor": - if (e.args.length < 2) break; - if (!((n = n.expression) instanceof Xi)) break; - if ("Object" != n.name) break; - if (!n.definition().undeclared) break; - xe(e.args[1], p); - break; - - case "hasOwnProperty": - if (e.args.length < 1) break; - xe(e.args[0], p); - } - } else e instanceof Nt ? "string" == typeof e.key && p(e.key) : e instanceof _i ? p(e.property) : e instanceof Mi ? "string" == typeof e.key && p(e.key) : e instanceof gi && xe(e.property, p); - })), e.walk(new mr(function(e) { - if (e instanceof ki) "in" == e.operator && h(e.left); else if ("Call" == e.TYPE) { - var n = e.expression; - if (n instanceof _i) switch (n.property) { - case "defineProperty": - case "getOwnPropertyDescriptor": - if (e.args.length < 2) break; - if (!((n = n.expression) instanceof Xi)) break; - if ("Object" != n.name) break; - if (!n.definition().undeclared) break; - h(e.args[1]); - break; - - case "hasOwnProperty": - if (e.args.length < 1) break; - h(e.args[0]); - } - } else e instanceof Nt ? "string" == typeof e.key && (e.key = d(e.key)) : e instanceof _i ? e.property = d(e.property) : e instanceof Mi ? "string" == typeof e.key && (e.key = d(e.key)) : e instanceof gi && (t.keep_quoted || h(e.property)); - })); - }(o, r.mangle.properties), n && (n.output = Date.now()); - var f = {}, c = oe(r.output, { - ast: !1, - code: !0 - }); - if (c.ast && (f.ast = o), c.code) { - if (r.sourceMap && (c.source_map = ee(r.sourceMap), r.sourceMap.includeSources)) { - if (i instanceof mt) throw new Error("original source content unavailable"); - for (var u in i) Vn(i, u) && c.source_map.setSourceContent(u, i[u]); - } - delete c.ast, delete c.code; - var l, p = Ar(c); - o.print(p), f.code = p.get(), r.sourceMap && (f.map = c.source_map.toString(), (l = r.sourceMap.url) && (f.code = f.code.replace(/\n\/\/# sourceMappingURL=\S+\s*$/, ""), - f.code += "inline" == l ? "\n//# sourceMappingURL=data:application/json;charset=utf-8;base64," + ie(f.map) : "\n//# sourceMappingURL=" + l)); - } - return r.nameCache && r.mangle && (r.mangle.cache && (r.nameCache.vars = Te(r.mangle.cache)), - r.mangle.properties && r.mangle.properties.cache && (r.nameCache.props = Te(r.mangle.properties.cache))), - n && (n.end = Date.now(), f.timings = { - parse: .001 * (n.rename - n.parse), - rename: .001 * (n.compress - n.rename), - compress: .001 * (n.scope - n.compress), - scope: .001 * (n.mangle - n.scope), - mangle: .001 * (n.properties - n.mangle), - properties: .001 * (n.output - n.properties), - output: .001 * (n.end - n.output), - total: .001 * (n.end - n.start) - }), t.length && (f.warnings = t), f; - } catch (e) { - return { - error: e - }; - } finally { - Gn.log_function(), Gn.disable_validation(); - } - function d(e) { - Hn(h, e); - } - var h; - }, _.parse = kr, _.push_uniq = Hn, _.TreeTransformer = _r, _.TreeWalker = mr; -}(UglifyJS); -export default UglifyJS diff --git a/src/views/tool/library/formatter/vue.js b/src/views/tool/library/formatter/vue.js deleted file mode 100644 index cc888ed..0000000 --- a/src/views/tool/library/formatter/vue.js +++ /dev/null @@ -1,14 +0,0 @@ -import prettier from "prettier/standalone"; -import parserHtml from "prettier/parser-html"; - -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parserHtml], - parser: "vue", - tabWidth: "tab" in option ? option.tab : 4 - }); -} - -export default { - beautify -} diff --git a/src/views/tool/library/formatter/xml.js b/src/views/tool/library/formatter/xml.js deleted file mode 100644 index 1b19a8f..0000000 --- a/src/views/tool/library/formatter/xml.js +++ /dev/null @@ -1,21 +0,0 @@ -import xmlFormatter from "xml-formatter" - -export const beautify = (code, option = {}) => { - return xmlFormatter(code, { - indentation: " ".repeat("tab" in option ? option.tab : 4), - collapseContent: true, - lineSeparator: '\n' - }); -} -// eslint-disable-next-line no-unused-vars -export const compress = (code, options = {}) => { - return xmlFormatter(code, { - indentation: '', - collapseContent: true, - lineSeparator: '' - }); -} - -export default { - beautify, compress -} diff --git a/src/views/tool/library/formatter/yaml.js b/src/views/tool/library/formatter/yaml.js deleted file mode 100644 index cd8473a..0000000 --- a/src/views/tool/library/formatter/yaml.js +++ /dev/null @@ -1,14 +0,0 @@ -import prettier from "prettier/standalone"; -import parser from "prettier/parser-yaml"; - -export const beautify = (code, option = {}) => { - return prettier.format(code, { - plugins: [parser], - parser: "yaml", - tabWidth: "tab" in option ? option.tab : 4 - }); -} - -export default { - beautify -} diff --git a/src/views/tool/library/ipcalc.js b/src/views/tool/library/ipcalc.js deleted file mode 100644 index 85fdc7d..0000000 --- a/src/views/tool/library/ipcalc.js +++ /dev/null @@ -1,120 +0,0 @@ -import {ip2long, long2ip, Netmask} from "netmask" -import Radix from "./radix" - -const radix = new Radix() - -const tryBinaryToDecimal = (ip) => { - if (ip.includes('.') && ip.substr(0, 2).toUpperCase() === "0B") { - return ipConvert(ip, 10, 2, '0b') - } - return ip -} - -export const ipConvert = (ip, toRadix = 10, fromRadix = 10, filterPrefix = "") => { - toRadix = parseInt(toRadix, 10); - fromRadix = parseInt(fromRadix, 10); - return ip.split('.').map((item) => { - // 移除前缀 - if ( - filterPrefix - && item.length > filterPrefix.length - && item.substr(0, filterPrefix.length).toUpperCase() === filterPrefix.toUpperCase() - ) { - item = item.substr(filterPrefix.length) - } - // 移除补零 - item = item.replace(/\b(0+)/gi, "") || "0" - if (toRadix === fromRadix) { - return `${item}`; - } - - return `${radix.convent(item, fromRadix, toRadix).padStart(toRadix === 2 ? 8 : (toRadix === 8 ? 4 : 2), '0').toUpperCase()}` - }).join('.') -} - -export const getMaskBitByAvailable = (available) => { - available = parseInt(`${available}`, 10); - if (isNaN(available) || available > 0xfffffffe || available < 1) { - throw new Error(`Available Size Invalid`) - } - let bitSize = parseInt(`${Math.log(available) / Math.log(2)}`) + 1; - if ((Math.pow(2, bitSize) - available) < 2) { - bitSize += 1; - } - return 32 - bitSize - -} - -export default class { - netmask = null - ip = "" - - constructor( - ipAddr = "192.168.0.1" // lang/点分[10/8/16]进制 - , maskAddr = "24" // 位数/lang/点分[10/8/16]进制 - ) { - // mask long - if (!`${maskAddr}`.includes('.') && parseInt(`${maskAddr}`, 10) > 32) { - maskAddr = long2ip(maskAddr) - } - - // ip/mask 支持二进制 - ipAddr = tryBinaryToDecimal(ipAddr) - maskAddr = tryBinaryToDecimal(maskAddr) - - this.netmask = new Netmask(`${ipAddr}/${maskAddr}`) - this.ip = `${long2ip(ip2long(ipAddr))}` - } - - // 可用地址 - available() { - return Math.max(this.netmask.size - 2, 0) - } - - // 地址总数 - size() { - return this.netmask.size - } - - // 网络 - base() { - return this.netmask.base - } - - first() { - return this.netmask.first - } - - last() { - return this.netmask.last - } - - broadcast() { - return this.netmask.broadcast || "-" - } - - // 当前ip - ipInfo() { - return { - ip: this.ip, - long: `${ip2long(this.ip)}`, - ip2: ipConvert(this.ip, 2), - ip8: ipConvert(this.ip, 8), - ip16: ipConvert(this.ip, 16), - } - } - - // 当前掩码 - maskInfo() { - const mask = `${long2ip(this.netmask.maskLong)}`; - return { - bit: `${this.netmask.bitmask}`, - long: `${this.netmask.maskLong}`, - mask, - mask2: ipConvert(mask, 2), - mask8: ipConvert(mask, 8), - mask16: ipConvert(mask, 16), - opposite: `${this.netmask.hostmask}`, - } - } -} diff --git a/src/views/tool/library/ipcalc_copy.js b/src/views/tool/library/ipcalc_copy.js deleted file mode 100644 index d20128e..0000000 --- a/src/views/tool/library/ipcalc_copy.js +++ /dev/null @@ -1,273 +0,0 @@ -function h_initArray() { - this.length = h_initArray.arguments.length; - for (var a = 0; a < this.length; a++) this[a] = h_initArray.arguments[a] -} - -function h_from10toradix(a, e) { - var t, u, v = "", l = new h_initArray(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F"), n = 0; - if (t = parseInt(a, 10), isNaN(t)) v = "NaN"; else for (v = t < 1 ? "0" : ""; .9 < t;) if (n++, v = l[(u = t) % e] + v, t = Math.floor(u / e), 100 < n) { - v = "NaN"; - break - } - return v -} - -function h_paddto2(a) { - for (; a.length < 2;) a = "0" + a; - return a -} - -function h_paddto8(a) { - for (; a.length < 8;) a = "0" + a; - return a -} - -function h_countbitsfromleft(a) { - if (255 == a) return 8; - for (i = 0, bitpat = 65280; i < 8;) { - if (a == (255 & bitpat)) return i; - bitpat >>= 1, i++ - } - return Number.NaN -} - -function calcNWbits(a) { - sumofbits = 0, tmpvar = parseInt(a.snm_1.value, 10), isNaN(tmpvar) ? a.result.value = "无效" : (bitsfromleft = h_countbitsfromleft(tmpvar), isNaN(bitsfromleft) ? a.result.value = "无效" : (sumofbits += bitsfromleft, tmpvar = parseInt(a.snm_2.value, 10), isNaN(tmpvar) ? a.result.value = "无效" : (bitsfromleft = h_countbitsfromleft(tmpvar), isNaN(bitsfromleft) ? a.result.value = "无效" : (sumofbits += bitsfromleft, tmpvar = parseInt(a.snm_3.value, 10), isNaN(tmpvar) ? a.result.value = "无效" : (bitsfromleft = h_countbitsfromleft(tmpvar), isNaN(bitsfromleft) ? a.result.value = "无效" : (sumofbits += bitsfromleft, tmpvar = parseInt(a.snm_4.value, 10), isNaN(tmpvar) ? a.result.value = "无效" : (bitsfromleft = h_countbitsfromleft(tmpvar), isNaN(bitsfromleft) ? a.result.value = "无效" : (sumofbits += bitsfromleft, a.result.value = sumofbits)))))))) -} - -function resetform1(a) { - a.result.value = "", a.snm_1.value = 255, a.snm_2.value = 255, a.snm_3.value = 255, a.snm_4.value = 0 -} - -function h_fillbitsfromleft(a) { - if (8 <= a) return 255; - for (bitpat = 65280; 0 < a;) bitpat >>= 1, a--; - return 255 & bitpat -} - -function calcNWmask(a) { - return tmpvar = parseInt(a.bits.value, 10), isNaN(tmpvar) || 32 < tmpvar || tmpvar < 0 ? (a.snm_1.value = "错误", a.snm_2.value = "", a.snm_3.value = "", a.snm_4.value = "", 1) : (a.snm_1.value = 0, a.snm_2.value = 0, a.snm_3.value = 0, a.snm_4.value = 0, 8 <= tmpvar ? (a.snm_1.value = 255, tmpvar -= 8, 8 <= tmpvar ? (a.snm_2.value = 255, tmpvar -= 8, 8 <= tmpvar ? (a.snm_3.value = 255, tmpvar -= 8, a.snm_4.value = h_fillbitsfromleft(tmpvar)) : a.snm_3.value = h_fillbitsfromleft(tmpvar), 0) : (a.snm_2.value = h_fillbitsfromleft(tmpvar), 0)) : (a.snm_1.value = h_fillbitsfromleft(tmpvar), 0)) -} - -function calcNWmaskForm2(a) { - if (a.hex_1.value = "", a.hex_2.value = "", a.hex_3.value = "", a.hex_4.value = "", 0 != calcNWmask(a)) return 1; - tmpvar = a.snm_1.value, a.hex_1.value = h_paddto2(h_from10toradix(tmpvar, 16)), tmpvar = a.snm_2.value, a.hex_2.value = h_paddto2(h_from10toradix(tmpvar, 16)), tmpvar = a.snm_3.value, a.hex_3.value = h_paddto2(h_from10toradix(tmpvar, 16)), tmpvar = a.snm_4.value, a.hex_4.value = h_paddto2(h_from10toradix(tmpvar, 16)) -} - -function resetform2(a) { - a.bits.value = 24, a.snm_1.value = "", a.snm_2.value = "", a.snm_3.value = "", a.snm_4.value = "", a.hex_1.value = "", a.hex_2.value = "", a.hex_3.value = "", a.hex_4.value = "" -} - -function resetform3(a) { - a.ip_1.value = 10, a.ip_2.value = 0, a.ip_3.value = 0, a.ip_4.value = 255, a.bits_1.value = "", a.bits_2.value = "", a.bits_3.value = "", a.bits_4.value = "", a.hex_1.value = "", a.hex_2.value = "", a.hex_3.value = "", a.hex_4.value = "" -} - -function calcBinBits(a) { - a.bits_1.value = "", a.bits_2.value = "", a.bits_3.value = "", a.bits_4.value = "", tmpvar = parseInt(a.ip_1.value, 10), isNaN(tmpvar) || tmpvar < 0 || 255 < tmpvar ? a.bits_1.value = "错误" : (a.bits_1.value = h_paddto8(h_from10toradix(tmpvar, 2)), a.hex_1.value = h_paddto2(h_from10toradix(tmpvar, 16)), tmpvar = parseInt(a.ip_2.value, 10), isNaN(tmpvar) || tmpvar < 0 || 255 < tmpvar ? a.bits_2.value = "错误" : (a.bits_2.value = h_paddto8(h_from10toradix(tmpvar, 2)), a.hex_2.value = h_paddto2(h_from10toradix(tmpvar, 16)), tmpvar = parseInt(a.ip_3.value, 10), isNaN(tmpvar) || tmpvar < 0 || 255 < tmpvar ? a.bits_3.value = "错误" : (a.bits_3.value = h_paddto8(h_from10toradix(tmpvar, 2)), a.hex_3.value = h_paddto2(h_from10toradix(tmpvar, 16)), tmpvar = parseInt(a.ip_4.value, 10), isNaN(tmpvar) || tmpvar < 0 || 255 < tmpvar ? a.bits_4.value = "错误" : (a.bits_4.value = h_paddto8(h_from10toradix(tmpvar, 2)), a.hex_4.value = h_paddto2(h_from10toradix(tmpvar, 16)))))) -} - -function reset_rest_from4(a) { - a.bcast_1.value = "", a.bcast_2.value = "", a.bcast_3.value = "", a.bcast_4.value = "", a.nwadr_1.value = "", a.nwadr_2.value = "", a.nwadr_3.value = "", a.nwadr_4.value = "", a.firstadr_1.value = "", a.firstadr_2.value = "", a.firstadr_3.value = "", a.firstadr_4.value = "", a.lastadr_1.value = "", a.lastadr_2.value = "", a.lastadr_3.value = "", a.lastadr_4.value = "", a.snm_1.value = "", a.snm_2.value = "", a.snm_3.value = "", a.snm_4.value = "", a.numofaddr.value = "" -} - -function resetform4(a) { - a.bits.value = 24, a.ip_1.value = 10, a.ip_2.value = 0, a.ip_3.value = 0, a.ip_4.value = 5, reset_rest_from4(a) -} - -function calNBFL(a) { - return reset_rest_from4(a), tmpvar = parseInt(a.ip_1.value, 10), isNaN(tmpvar) || 255 < tmpvar || tmpvar < 0 ? (a.numofaddr.value = "错误", 1) : (tmpvar = parseInt(a.ip_2.value, 10), isNaN(tmpvar) || 255 < tmpvar || tmpvar < 0 ? (a.numofaddr.value = "错误", 1) : (tmpvar = parseInt(a.ip_3.value, 10), isNaN(tmpvar) || 255 < tmpvar || tmpvar < 0 ? (a.numofaddr.value = "错误", 1) : (tmpvar = parseInt(a.ip_4.value, 10), isNaN(tmpvar) || 255 < tmpvar || tmpvar < 0 ? (a.numofaddr.value = "错误", 1) : 0 != calcNWmask(a) ? 1 : (tmpvar = parseInt(a.bits.value, 10), tmpvar < 0 ? (a.numofaddr.value = "错误", 1) : 32 < tmpvar ? (a.numofaddr.value = "错误", 1) : 31 == tmpvar ? (a.numofaddr.value = "two hosts", a.firstadr_1.value = a.ip_1.value & a.snm_1.value, a.firstadr_2.value = a.ip_2.value & a.snm_2.value, a.firstadr_3.value = a.ip_3.value & a.snm_3.value, a.firstadr_4.value = a.ip_4.value & a.snm_4.value, a.lastadr_1.value = a.ip_1.value | 255 & ~a.snm_1.value, a.lastadr_2.value = a.ip_2.value | 255 & ~a.snm_2.value, a.lastadr_3.value = a.ip_3.value | 255 & ~a.snm_3.value, a.lastadr_4.value = a.ip_4.value | 255 & ~a.snm_4.value, 1) : 32 == tmpvar ? (a.numofaddr.value = "one host", a.firstadr_1.value = a.ip_1.value, a.firstadr_2.value = a.ip_2.value, a.firstadr_3.value = a.ip_3.value, a.firstadr_4.value = a.ip_4.value, 1) : (a.numofaddr.value = Math.pow(2, 32 - tmpvar) - 2, a.bcast_1.value = a.ip_1.value | 255 & ~a.snm_1.value, a.bcast_2.value = a.ip_2.value | 255 & ~a.snm_2.value, a.bcast_3.value = a.ip_3.value | 255 & ~a.snm_3.value, a.bcast_4.value = a.ip_4.value | 255 & ~a.snm_4.value, a.nwadr_1.value = a.ip_1.value & a.snm_1.value, a.nwadr_2.value = a.ip_2.value & a.snm_2.value, a.nwadr_3.value = a.ip_3.value & a.snm_3.value, a.nwadr_4.value = a.ip_4.value & a.snm_4.value, a.firstadr_1.value = a.nwadr_1.value, a.firstadr_2.value = a.nwadr_2.value, a.firstadr_3.value = a.nwadr_3.value, a.firstadr_4.value = parseInt(a.nwadr_4.value) + 1, a.lastadr_1.value = a.bcast_1.value, a.lastadr_2.value = a.bcast_2.value, a.lastadr_3.value = a.bcast_3.value, a.lastadr_4.value = parseInt(a.bcast_4.value) - 1, 0))))) -} - -function resetform6(a) { - a.numofaddr.value = 5, a.bits.value = "", a.maxaddr.value = "", a.snm_1.value = "", a.snm_2.value = "", a.snm_3.value = "", a.snm_4.value = "" -} - -function calcNeeded(a) { - if (tmpvar = parseInt(a.numofaddr.value, 10), isNaN(tmpvar) || 4294967294 < tmpvar || tmpvar < 1) return a.bits.value = "ERR", a.snm_1.value = "", a.snm_2.value = "", a.snm_3.value = "", a.snm_4.value = "", void (a.maxaddr.value = ""); - expval = parseInt(Math.log(tmpvar) / Math.log(2)) + 1, maxaddrval = Math.pow(2, expval), maxaddrval - tmpvar < 2 && (expval += 1), a.maxaddr.value = Math.pow(2, expval) - 2, a.bits.value = 32 - expval, calcNWmask(a) -} - -function calcAmount(a) { - if (tmpvar = parseInt(a.bits.value, 10), isNaN(tmpvar) || 30 < tmpvar || tmpvar < 0) return a.numofaddr.value = "错误", a.maxaddr.value = "", a.snm_1.value = "", a.snm_2.value = "", a.snm_3.value = "", void (a.snm_4.value = ""); - a.maxaddr.value = Math.pow(2, 32 - tmpvar), a.numofaddr.value = Math.pow(2, 32 - tmpvar) - 2, calcNWmask(a) -} - -function resetform7(a) { - a.numofaddr.value = "", a.maxaddr.value = "", a.bits.value = 27, a.snm_1.value = "", a.snm_2.value = "", a.snm_3.value = "", a.snm_4.value = "" -} - -function resetform8(a) { - a.ip_1.value = 255, a.ip_2.value = 255, a.ip_3.value = 240, a.ip_4.value = 0, a.invert_1.value = "", a.invert_2.value = "", a.invert_3.value = "", a.invert_4.value = "" -} - -function calcIpInvert(a) { - a.invert_1.value = "", a.invert_2.value = "", a.invert_3.value = "", a.invert_4.value = "", tmpvar = parseInt(a.ip_1.value, 10), isNaN(tmpvar) ? a.invert_1.value = "NaN" : (a.invert_1.value = 255 & ~tmpvar, tmpvar = parseInt(a.ip_2.value, 10), isNaN(tmpvar) ? a.invert_2.value = "NaN" : (a.invert_2.value = 255 & ~tmpvar, tmpvar = parseInt(a.ip_3.value, 10), isNaN(tmpvar) ? a.invert_3.value = "NaN" : (a.invert_3.value = 255 & ~tmpvar, tmpvar = parseInt(a.ip_4.value, 10), isNaN(tmpvar) ? a.invert_4.value = "NaN" : a.invert_4.value = 255 & ~tmpvar))) -} - -function resetform9(a) { - a.dec_1.value = "", a.bin_1.value = "", a.num.value = "" -} - -function convertnum_hex(a) { - if (a.dec_1.value = "", a.bin_1.value = "", tmpvar = a.num.value.replace(/0x/i, ""), a.num.value = tmpvar, tmpvar = parseInt(a.num.value, 16), isNaN(tmpvar)) return a.dec_1.value = "NaN", void (a.bin_1.value = "NaN"); - a.dec_1.value = tmpvar, a.bin_1.value = h_from10toradix(tmpvar, 2) -} - -function resetform10(a) { - a.dec_1.value = "", a.hex_1.value = "", a.num.value = "" -} - -function convertnum_bin(a) { - if (a.dec_1.value = "", a.hex_1.value = "", tmpvar = parseInt(a.num.value, 2), isNaN(tmpvar)) return a.dec_1.value = "NaN", void (a.hex_1.value = "NaN"); - a.dec_1.value = tmpvar, a.hex_1.value = h_from10toradix(tmpvar, 16) -} - -function resetform11(a) { - a.bin_1.value = "", a.hex_1.value = "", a.num.value = "" -} - -function convertnum_dec(a) { - if (a.bin_1.value = "", a.hex_1.value = "", tmpvar = parseInt(a.num.value, 10), isNaN(tmpvar)) return a.bin_1.value = "NaN", void (a.hex_1.value = "NaN"); - a.hex_1.value = h_from10toradix(tmpvar, 16), a.bin_1.value = h_from10toradix(tmpvar, 2) -} - -function resetform12(a) { - a.hex.value = "", a.ip_1.value = "", a.ip_2.value = "", a.ip_3.value = "", a.ip_4.value = "", a.bits_1.value = "", a.bits_2.value = "", a.bits_3.value = "", a.bits_4.value = "" -} - -function dot2hex(a) { - a.ip_1.value = "", a.ip_2.value = "", a.ip_3.value = "", a.ip_4.value = "", a.bits_1.value = "", a.bits_2.value = "", a.bits_3.value = "", a.bits_4.value = "", tmpvar = a.hex.value.replace(/0x/i, ""), a.hex.value = tmpvar.substr(0, 8), tmpvar = parseInt(tmpvar, 16), isNaN(tmpvar) ? a.ip_1.value = "输入错误" : (a.hex.value = h_paddto8(a.hex.value), a.ip_1.value = parseInt(a.hex.value.substr(0, 2), 16), a.bits_1.value = h_paddto8(h_from10toradix(a.ip_1.value, 2)), a.ip_2.value = parseInt(a.hex.value.substr(2, 2), 16), a.bits_2.value = h_paddto8(h_from10toradix(a.ip_2.value, 2)), a.ip_3.value = parseInt(a.hex.value.substr(4, 2), 16), a.bits_3.value = h_paddto8(h_from10toradix(a.ip_3.value, 2)), a.ip_4.value = parseInt(a.hex.value.substr(6, 2), 16), a.bits_4.value = h_paddto8(h_from10toradix(a.ip_4.value, 2))) -} - -function d2h(a) { - for (var e = a, t = "", u = 0; u < 2; u++) k = 15 & e, t = "0123456789ABCDEF".charAt(k) + t, e >>= 4; - return t -} - -function h2d(a) { - for (var e = a.toUpperCase(), t = 0, u = " "; e.length < 4;) e = 0 + e; - for (var v = 0; v < 4; v++) u = e.charAt(v), t = 16 * t + "0123456789ABCDEF".indexOf(u); - return t -} - -function d2b(a) { - var e = 0, t = 0, u = 0, v = 0, l = 0, n = 0, r = 0, s = 0; - return 128 & a && (e = 1), 64 & a && (t = 1), 32 & a && (u = 1), 16 & a && (v = 1), 8 & a && (l = 1), 4 & a && (n = 1), 2 & a && (r = 1), 1 & a && (s = 1), "" + e + t + u + v + l + n + r + s -} - -function d2bits(a) { - var e = 0; - return 128 & a && (e += 1), 64 & a && (e += 1), 32 & a && (e += 1), 16 & a && (e += 1), 8 & a && (e += 1), 4 & a && (e += 1), 2 & a && (e += 1), 1 & a && (e += 1), e -} - -function snmcorrect(a) { - return 255 < (snmcorr = a) && (snmcorr = 255), 253 == a && (snmcorr = 254), 248 < a && a < 252 && (snmcorr = 252), 240 < a && a < 248 && (snmcorr = 248), 224 < a && a < 240 && (snmcorr = 240), 192 < a && a < 224 && (snmcorr = 224), 128 < a && a < 192 && (snmcorr = 192), 0 < a && a < 128 && (snmcorr = 128), a < 0 && (snmcorr = 0), snmcorr -} - -function b2d(a) { - for (var e = 0; a.length < 8;) a = "0" + a; - return "1" == a.substring(7, 8) && e++, "1" == a.substring(6, 7) && (e += 2), "1" == a.substring(5, 6) && (e += 4), "1" == a.substring(4, 5) && (e += 8), "1" == a.substring(3, 4) && (e += 16), "1" == a.substring(2, 3) && (e += 32), "1" == a.substring(1, 2) && (e += 64), "1" == a.substring(0, 1) && (e += 128), e -} - -function bits2d(a) { - var e = 0; - return 0 < a && (e += 128), 1 < a && (e += 64), 2 < a && (e += 32), 3 < a && (e += 16), 4 < a && (e += 8), 5 < a && (e += 4), 6 < a && (e += 2), 7 < a && (e += 1), e -} - -function initPage() { - document.forms[0].elements.length && SetOrder() -} - -var code = "unknown", version = 0, platform = "Win", j = 0, i = navigator.userAgent.indexOf("MSIE"); - -function ClearAll(a) { - a.node.options.selectedIndex = 0, a.network.options.selectedIndex = 0, a.cf[0].checked = !0, a.oct1.value = "", a.oct2.value = "", a.oct3.value = "", a.oct4.value = "", a.snm1.value = "", a.snm2.value = "", a.snm3.value = "", a.snm4.value = "", a.snm1a.value = "", a.snm2a.value = "", a.snm3a.value = "", a.snm4a.value = "", a.snm1c.value = "", a.snm2c.value = "", a.snm3c.value = "", a.snm4c.value = "", a.snm1d.value = "", a.snm2d.value = "", a.snm3d.value = "", a.snm4d.value = "", a.snm1e.value = "", a.snm2e.value = "", a.snm3e.value = "", a.snm4e.value = "", a.oct1a.value = "", a.oct2a.value = "", a.oct3a.value = "", a.oct4a.value = "", a.oct1b.value = "", a.oct2b.value = "", a.oct3b.value = "", a.oct4b.value = "", a.hex1b.value = "", a.hex2b.value = "", a.hex3b.value = "", a.hex4b.value = "", a.bin1b.value = "", a.bin2b.value = "", a.bin3b.value = "", a.bin4b.value = "", a.nw1a.value = "", a.nw2a.value = "", a.nw3a.value = "", a.nw4a.value = "", a.node1a.value = "", a.node2a.value = "", a.node3a.value = "", a.node4a.value = "", a.nwclass.value = "", a.nwclass1.value = "", a.subsuper.value = "", a.nwquant.value = "", a.nodequant.value = "", a.snmbits.value = "", a.broad1a.value = "", a.broad2a.value = "", a.broad3a.value = "", a.broad4a.value = "", a.snmbitsc.value = "", a.dec1b.value = "" -} - -function listsubnets(a) { - if (compute(a), "Illegal" != a.nwclass.value) { - if (SubnetWindow = window.open("", "SubnetWindow", "width=600px,scrollbars=yes,menubar=yes,status=yes,resizable=yes"), SubnetWindow.document.write("

    网络列表

    "), networks = a.nwquant.value, nodes = a.nodequant.value + 2, SubnetWindow.status = "正在生成表格", "子网是" == a.subsuper.value) { - var e = 0; - if (SubnetWindow.status = "正在生成表格", "C类网" == a.nwclass1.value) { - SubnetWindow.document.write("

    (网络 " + a.nw1a.value + "." + a.nw2a.value + "." + a.nw3a.value + ".0,掩码"), SubnetWindow.document.write(" " + a.snm1.value + "." + a.snm2.value + "." + a.snm3.value + "." + a.snm4.value + ")

    "), SubnetWindow.document.write(""), SubnetWindow.document.write(""), SubnetWindow.document.write(""), nodes = 256 / networks; - for (var t = 0; t < 256; t += nodes) j = t + 1, topi = t + nodes - 1 & 255, topj = topi - 1, 128 == networks && (topi = (j = t) + nodes - 1 & 255, topj = topi), SubnetWindow.document.write("") - } - if ("B类网" == a.nwclass1.value) { - SubnetWindow.document.write("

    (网络 " + a.nw1a.value + "." + a.nw2a.value + ".0.0,掩码"), SubnetWindow.document.write(" " + a.snm1.value + "." + a.snm2.value + "." + a.snm3.value + "." + a.snm4.value + ")

    "), SubnetWindow.document.write("
    网络主机广播地址
    起始结束
    " + a.oct1.value + "." + a.oct2.value + "." + a.oct3.value + "." + t + "" + a.oct1.value + "." + a.oct2.value + "." + a.oct3.value + "." + j + "" + a.oct1.value + "." + a.oct2.value + "." + a.oct3.value + "." + topj + "" + a.oct1.value + "." + a.oct2.value + "." + a.oct3.value + "." + topi + "
    "), SubnetWindow.document.write(""), SubnetWindow.document.write(""), nodes = 65536 / networks; - for (t = 0; t < 65536; t += nodes) e += 1, i4 = 255 & t, i3 = t / 256 & 255, j = i4 + 1, topi4 = t + nodes - 1 & 255, topi3 = (t + nodes - 1) / 256 & 255, topj = topi4 - 1, 32768 == networks && (j = i4, topi4 = t + nodes - 1 & 255, topj = topi4), SubnetWindow.document.write(""), 256 == e && 512 < networks && (SubnetWindow.document.write(""), t = 65536 - e * nodes) - } - if ("A类网" == a.nwclass1.value) { - SubnetWindow.document.write("

    (网络 " + a.nw1a.value + ".0.0.0,掩码"), SubnetWindow.document.write(" " + a.snm1.value + "." + a.snm2.value + "." + a.snm3.value + "." + a.snm4.value + ")

    "), SubnetWindow.document.write("
    网络主机广播地址
    起始结束
    " + a.oct1.value + "." + a.oct2.value + "." + i3 + "." + i4 + "" + a.oct1.value + "." + a.oct2.value + "." + i3 + "." + j + "" + a.oct1.value + "." + a.oct2.value + "." + topi3 + "." + topj + "" + a.oct1.value + "." + a.oct2.value + "." + topi3 + "." + topi4 + "
    ........
    "), SubnetWindow.document.write(""), SubnetWindow.document.write(""), nodes = 16777216 / networks; - for (t = 0; t < 16777216; t += nodes) e += 1, i4 = 255 & t, i3 = t / 256 & 255, i2 = t / 65536 & 255, j = i4 + 1, topi4 = t + nodes - 1 & 255, topi3 = (t + nodes - 1) / 256 & 255, topi2 = (t + nodes - 1) / 65536 & 255, topj = topi4 - 1, 8388608 == networks && (j = i4, topi4 = t + nodes - 1 & 255, topj = topi4), SubnetWindow.document.write(""), 256 == e && 512 < networks && (SubnetWindow.document.write(""), t = 16777216 - e * nodes) - } - } - if ("Supernetted" == a.subsuper.value) { - SubnetWindow.document.write("

    (网络 " + a.nw1a.value + "." + a.nw2a.value + "." + a.nw3a.value + ".0,掩码"), SubnetWindow.document.write(" " + a.snm1.value + "." + a.snm2.value + "." + a.snm3.value + "." + a.snm4.value + ")

    "), SubnetWindow.document.write("
    网络主机广播地址
    起始结束
    " + a.oct1.value + "." + i2 + "." + i3 + "." + i4 + "" + a.oct1.value + "." + i2 + "." + i3 + "." + j + "" + a.oct1.value + "." + topi2 + "." + topi3 + "." + topj + "" + a.oct1.value + "." + topi2 + "." + topi3 + "." + topi4 + "
    ........
    "), SubnetWindow.document.write(""), SubnetWindow.document.write(""); - t = a.nw4a.value + 1; - j = a.broad4a.value - 1, SubnetWindow.document.write("") - } - SubnetWindow.document.write("
    网络主机广播地址
    起始结束
    " + a.nw1a.value + "." + a.nw2a.value + "." + a.nw3a.value + "." + a.nw4a.value + "" + a.nw1a.value + "." + a.nw2a.value + "." + a.nw3a.value + "." + t + "" + a.broad1a.value + "." + a.broad2a.value + "." + a.broad3a.value + "." + j + "" + a.broad1a.value + "." + a.broad2a.value + "." + a.broad3a.value + "." + a.broad4a.value + "
    "), SubnetWindow.status = "完成" - } -} - -function compute2(f) { - var cf = 1, node, nw; - if ("1" == f.cf[1].checked && (cf = f.cf[1].value), "1" == f.cf[2].checked && (cf = f.cf[2].value), "1" == f.cf[3].checked && (cf = f.cf[3].value), "MSIE" == code) node = f.node.value, nw = f.network.value, 0 < node && (nw = 0, f.network.options.selectedIndex = 0, node = eval(eval(node))); else { - var i = f.node.selectedIndex; - node = parseInt(f.node.options[i].value); - var j = f.network.selectedIndex; - nw = parseInt(f.network.options[j].value), 0 < node && (nw = 0, f.network.options.selectedIndex = 0, node = eval(eval(node))) - } - 0 == nw && 0 == node && (nw = 1); - var power2 = 2; - if (255 < f.oct1.value && (f.oct1.value = 255), 255 < f.oct2.value && (f.oct2.value = 255), 255 < f.oct3.value && (f.oct3.value = 255), 255 < f.oct4.value && (f.oct4.value = 255), 0 < f.oct1.value && f.oct1.value < 127 && (f.nwclass.value = "A类网"), 127 < f.oct1.value && f.oct1.value < 192 && (f.nwclass.value = "B类网"), 191 < f.oct1.value && f.oct1.value < 224 && (f.nwclass.value = "C类网"), (f.oct1.value < 1 || 223 < f.oct1.value) && (f.nwclass.value = "Illegal", f.nwclass1.value = "", f.subsuper.value = "", f.nwquant.value = 0, f.nodequant.value = 0, f.snm1.value = 0, f.snm2.value = 0, f.snm3.value = 0, f.snm4.value = 0, f.snmbits.value = 0), "A类网" == f.nwclass.value && 1 == cf || 2 == cf && "Illegal" != f.nwclass.value) { - var nwtemp; - for (1 <= nw && (node = 16777216 / nw), 16777216 < node ? (f.nwclass1.value = "", nw = 1073741824 / node, nwtemp = nw, f.snm1.value = 255 & ~(64 / nw - 1), f.snm2.value = 0, f.snm3.value = 0, f.snm4.value = 0, f.subsuper.value = "Supernetted", nw = 1) : (f.nwclass1.value = "A类网", nw = 16777216 / node, nwtemp = nw, f.snm1.value = 255, f.snm2.value = 255 & ~(256 / nw - 1), f.snm3.value = 255 & ~(65536 / nw - 1), f.snm4.value = 255 & ~(16777216 / nw - 1), f.subsuper.value = "子网是", power2 += 6); 1 < nwtemp;) nwtemp /= 2, power2 += 1; - f.nodequant.value = node, f.nwquant.value = nw, f.snmbits.value = "/" + power2 - } - if ("B类网" == f.nwclass.value && 1 == cf || 3 == cf && "Illegal" != f.nwclass.value) { - var nwtemp; - for (32768 < nw && (nw = 32768), 1 <= nw && (node = 65536 / nw), 65536 < node ? (f.nwclass1.value = "", nw = 1073741824 / node, nwtemp = nw, f.snm1.value = 255 & ~(64 / nw - 1), f.snm2.value = 255 & ~(16384 / nw - 1), f.snm3.value = 0, f.snm4.value = 0, f.subsuper.value = "Supernetted", nw = 1) : (f.nwclass1.value = "B类网", nw = 65536 / node, nwtemp = nw, f.snm1.value = 255, f.snm2.value = 255, f.snm3.value = 255 & ~(256 / nw - 1), f.snm4.value = 255 & ~(65536 / nw - 1), f.subsuper.value = "子网是", power2 += 14); 1 < nwtemp;) nwtemp /= 2, power2 += 1; - f.nodequant.value = node, f.nwquant.value = nw, f.snmbits.value = "/" + power2 - } - if ("C类网" == f.nwclass.value && 1 == cf || 4 == cf && "Illegal" != f.nwclass.value) { - var nwtemp; - for (128 < nw && (nw = 128), 1 <= nw && (node = 256 / nw), 256 < node ? (f.nwclass1.value = "", nw = 1073741824 / node, nwtemp = nw, f.snm1.value = 255 & ~(64 / nw - 1), f.snm2.value = 255 & ~(16384 / nw - 1), f.snm3.value = 255 & ~(4194304 / nw - 1), f.snm4.value = 0, f.subsuper.value = "Supernetted", nw = 1) : (f.nwclass1.value = "C类网", nw = 256 / node, nwtemp = nw, f.snm1.value = 255, f.snm2.value = 255, f.snm3.value = 255, f.snm4.value = 255 & ~(256 / nw - 1), f.subsuper.value = "子网是", power2 += 22); 1 < nwtemp;) nwtemp /= 2, power2 += 1; - f.nodequant.value = node, f.nwquant.value = nw, f.snmbits.value = "/" + power2 - } - f.snm1a.value = f.snm1.value, f.snm2a.value = f.snm2.value, f.snm3a.value = f.snm3.value, f.snm4a.value = f.snm4.value, f.oct1a.value = f.oct1.value, f.oct2a.value = f.oct2.value, f.oct3a.value = f.oct3.value, f.oct4a.value = f.oct4.value, f.oct1b.value = f.oct1.value, f.oct2b.value = f.oct2.value, f.oct3b.value = f.oct3.value, f.oct4b.value = f.oct4.value, compute(f), compute3(f), f.snm1c.value = f.snm1.value, f.snm2c.value = f.snm2.value, f.snm3c.value = f.snm3.value, f.snm4c.value = f.snm4.value, computeSNMA(f), f.snm1d.value = f.snm1.value, f.snm2d.value = f.snm2.value, f.snm3d.value = f.snm3.value, f.snm4d.value = f.snm4.value, computeINV1(f), (0 == f.nw1a.value && 0 == f.nw2a.value && 0 == f.nw3a.value && 0 == f.nw4a.value || 255 == f.broad1a.value && 255 == f.broad2a.value && 255 == f.broad3a.value && 255 == f.broad4a.value) && (f.nwclass.value = "Illegal", f.nwclass1.value = "", f.subsuper.value = "", f.nwquant.value = 0, f.nodequant.value = 0, f.snm1.value = 0, f.snm2.value = 0, f.snm3.value = 0, f.snm4.value = 0, f.snmbits.value = 0) -} - -function compute(f) { - 255 < f.oct1a.value && (f.oct1a.value = 255), 255 < f.oct2a.value && (f.oct2a.value = 255), 255 < f.oct3a.value && (f.oct3a.value = 255), 255 < f.oct4a.value && (f.oct4a.value = 255), 255 < f.snm1a.value && (f.snm1a.value = 255), 255 < f.snm2a.value && (f.snm2a.value = 255), 255 < f.snm3a.value && (f.snm3a.value = 255), 255 < f.snm4a.value && (f.snm4a.value = 255), f.nw1a.value = eval(f.snm1a.value & f.oct1a.value), f.nw2a.value = eval(f.snm2a.value & f.oct2a.value), f.nw3a.value = eval(f.snm3a.value & f.oct3a.value), f.nw4a.value = eval(f.snm4a.value & f.oct4a.value), f.node1a.value = eval(~f.snm1a.value & f.oct1a.value), f.node2a.value = eval(~f.snm2a.value & f.oct2a.value), f.node3a.value = eval(~f.snm3a.value & f.oct3a.value), f.node4a.value = eval(~f.snm4a.value & f.oct4a.value), f.broad1a.value = f.nw1a.value ^ 255 & ~f.snm1a.value, f.broad2a.value = f.nw2a.value ^ 255 & ~f.snm2a.value, f.broad3a.value = f.nw3a.value ^ 255 & ~f.snm3a.value, f.broad4a.value = f.nw4a.value ^ 255 & ~f.snm4a.value -} - -function compute3(f) { - 255 < f.oct1b.value && (f.oct1b.value = 255), 255 < f.oct2b.value && (f.oct2b.value = 255), 255 < f.oct3b.value && (f.oct3b.value = 255), 255 < f.oct4b.value && (f.oct4b.value = 255), f.bin1b.value = d2b(f.oct1b.value), f.bin2b.value = d2b(f.oct2b.value), f.bin3b.value = d2b(f.oct3b.value), f.bin4b.value = d2b(f.oct4b.value), f.hex1b.value = d2h(f.oct1b.value), f.hex2b.value = d2h(f.oct2b.value), f.hex3b.value = d2h(f.oct3b.value), f.hex4b.value = d2h(f.oct4b.value), f.dec1b.value = eval(16777216 * f.oct1b.value) + eval(65536 * f.oct2b.value) + eval(256 * f.oct3b.value) + eval(f.oct4b.value) -} - -function compute4(f) { - f.oct1b.value = b2d(f.bin1b.value), f.oct2b.value = b2d(f.bin2b.value), f.oct3b.value = b2d(f.bin3b.value), f.oct4b.value = b2d(f.bin4b.value), f.hex1b.value = d2h(f.oct1b.value), f.hex2b.value = d2h(f.oct2b.value), f.hex3b.value = d2h(f.oct3b.value), f.hex4b.value = d2h(f.oct4b.value), f.dec1b.value = eval(16777216 * f.oct1b.value) + eval(65536 * f.oct2b.value) + eval(256 * f.oct3b.value) + eval(f.oct4b.value) -} - -function compute5(f) { - f.oct1b.value = h2d(f.hex1b.value), f.oct2b.value = h2d(f.hex2b.value), f.oct3b.value = h2d(f.hex3b.value), f.oct4b.value = h2d(f.hex4b.value), f.bin1b.value = d2b(f.oct1b.value), f.bin2b.value = d2b(f.oct2b.value), f.bin3b.value = d2b(f.oct3b.value), f.bin4b.value = d2b(f.oct4b.value), f.dec1b.value = eval(16777216 * f.oct1b.value) + eval(65536 * f.oct2b.value) + eval(256 * f.oct3b.value) + eval(f.oct4b.value) -} - -function compute6(a) { - a.oct1b.value = a.dec1b.value >>> 24, a.oct2b.value = a.dec1b.value << 8 >>> 24, a.oct3b.value = a.dec1b.value << 16 >>> 24, a.oct4b.value = a.dec1b.value << 24 >>> 24, a.bin1b.value = d2b(a.oct1b.value), a.bin2b.value = d2b(a.oct2b.value), a.bin3b.value = d2b(a.oct3b.value), a.bin4b.value = d2b(a.oct4b.value), a.hex1b.value = d2h(a.oct1b.value), a.hex2b.value = d2h(a.oct2b.value), a.hex3b.value = d2h(a.oct3b.value), a.hex4b.value = d2h(a.oct4b.value) -} - -function computeSNMA(a) { - a.snm1c.value = snmcorrect(a.snm1c.value), a.snm1c.value < 255 ? (a.snm2c.value = 0, a.snm3c.value = 0, a.snm4c.value = 0) : (a.snm2c.value = snmcorrect(a.snm2c.value), a.snm2c.value < 255 ? (a.snm1c.value = 255, a.snm3c.value = 0, a.snm4c.value = 0) : (a.snm3c.value = snmcorrect(a.snm3c.value), a.snm3c.value < 255 ? (a.snm1c.value = 255, a.snm2c.value = 255, a.snm4c.value = 0) : a.snm4c.value = snmcorrect(a.snm4c.value))), bits = 0, bits += d2bits(a.snm1c.value), bits += d2bits(a.snm2c.value), bits += d2bits(a.snm3c.value), bits += d2bits(a.snm4c.value), a.snmbitsc.value = bits -} - -function computeSNMB(a) { - a.snmbitsc.value < 0 && (a.snmbitsc.value = 0), 32 < a.snmbitsc.value && (a.snmbitsc.value = 32), a.snm1c.value = bits2d(a.snmbitsc.value), a.snm2c.value = bits2d(a.snmbitsc.value - 8), a.snm3c.value = bits2d(a.snmbitsc.value - 16), a.snm4c.value = bits2d(a.snmbitsc.value - 24) -} - -function computeINV1(a) { - a.snm1e.value = 255 & ~a.snm1d.value, a.snm2e.value = 255 & ~a.snm2d.value, a.snm3e.value = 255 & ~a.snm3d.value, a.snm4e.value = 255 & ~a.snm4d.value -} - -0 <= i && 0 == j && (code = "MSIE", version = parseFloat(navigator.userAgent.substring(i + 5, i + 9)), j = 1), i = navigator.userAgent.indexOf("Opera"), 0 <= i && 0 == j && (code = "Opera", version = parseFloat(navigator.userAgent.substring(i + 5, i + 11)), j = 1), i = navigator.userAgent.indexOf("Mozilla/"), 0 <= i && 0 == j && (code = "NS", version = parseFloat(navigator.userAgent.substring(i + 8, i + 12))), 0 <= navigator.userAgent.indexOf("Mac") && (platform = "Mac"), 0 <= navigator.userAgent.indexOf("OS/2") && (platform = "OS/2"), 0 <= navigator.userAgent.indexOf("X11") && (platform = "UNIX"); diff --git a/src/views/tool/library/json/components/csvToJson.vue b/src/views/tool/library/json/components/csvToJson.vue deleted file mode 100644 index 5a1a098..0000000 --- a/src/views/tool/library/json/components/csvToJson.vue +++ /dev/null @@ -1,97 +0,0 @@ - - diff --git a/src/views/tool/library/json/components/jsonPath.vue b/src/views/tool/library/json/components/jsonPath.vue deleted file mode 100644 index e8a1c23..0000000 --- a/src/views/tool/library/json/components/jsonPath.vue +++ /dev/null @@ -1,67 +0,0 @@ - - diff --git a/src/views/tool/library/json/components/jsonToCsv.vue b/src/views/tool/library/json/components/jsonToCsv.vue deleted file mode 100644 index c650d0f..0000000 --- a/src/views/tool/library/json/components/jsonToCsv.vue +++ /dev/null @@ -1,62 +0,0 @@ - - diff --git a/src/views/tool/library/json/components/jsonToObject.vue b/src/views/tool/library/json/components/jsonToObject.vue deleted file mode 100644 index 808301c..0000000 --- a/src/views/tool/library/json/components/jsonToObject.vue +++ /dev/null @@ -1,133 +0,0 @@ - - diff --git a/src/views/tool/library/json/components/jsonToTable.vue b/src/views/tool/library/json/components/jsonToTable.vue deleted file mode 100644 index 20b6ef7..0000000 --- a/src/views/tool/library/json/components/jsonToTable.vue +++ /dev/null @@ -1,61 +0,0 @@ - - diff --git a/src/views/tool/library/json/components/tableToJson.vue b/src/views/tool/library/json/components/tableToJson.vue deleted file mode 100644 index dfa2254..0000000 --- a/src/views/tool/library/json/components/tableToJson.vue +++ /dev/null @@ -1,97 +0,0 @@ - - diff --git a/src/views/tool/library/json/csvToJson.js b/src/views/tool/library/json/csvToJson.js deleted file mode 100644 index 1dfb9d6..0000000 --- a/src/views/tool/library/json/csvToJson.js +++ /dev/null @@ -1,12 +0,0 @@ -import {parse} from 'csv-parse/sync'; -import {jsonOutputFormat} from './helper'; - -const convert = (csv = "", {type = "json",keyed_key=0} = {}) => { - return jsonOutputFormat( - parse(csv, {columns: true, skip_empty_lines: true}), - type, - keyed_key - ) -} - -export default convert diff --git a/src/views/tool/library/json/helper.js b/src/views/tool/library/json/helper.js deleted file mode 100644 index ff86f1b..0000000 --- a/src/views/tool/library/json/helper.js +++ /dev/null @@ -1,44 +0,0 @@ -export const createTempElement = (innerHTML = "", type = "div", id = "") => { - const el = document.createElement(type); - el.id = id ? id : `ctool-temp-${Math.ceil(Math.random() * 99999)}` - el.style.cssText = "display:none;" - document.body.appendChild(el); - // 移除script标签 - el.innerHTML = innerHTML.replace(/ diff --git a/src/views/tool/pinyin/dict.js b/src/views/tool/pinyin/dict.js deleted file mode 100644 index 2820367..0000000 --- a/src/views/tool/pinyin/dict.js +++ /dev/null @@ -1,407 +0,0 @@ -window.pinyin_dict_notone = { - "a": "阿啊呵腌嗄吖锕", - "e": "额阿俄恶鹅遏鄂厄饿峨扼娥鳄哦蛾噩愕讹锷垩婀鹗萼谔莪腭锇颚呃阏屙苊轭", - "ai": "爱埃艾碍癌哀挨矮隘蔼唉皑哎霭捱暧嫒嗳瑷嗌锿砹", - "ei": "诶", - "xi": "系西席息希习吸喜细析戏洗悉锡溪惜稀袭夕洒晰昔牺腊烯熙媳栖膝隙犀蹊硒兮熄曦禧嬉玺奚汐徙羲铣淅嘻歙熹矽蟋郗唏皙隰樨浠忾蜥檄郄翕阋鳃舾屣葸螅咭粞觋欷僖醯鼷裼穸饩舄禊诶菥蓰", - "yi": "一以已意议义益亿易医艺食依移衣异伊仪宜射遗疑毅谊亦疫役忆抑尾乙译翼蛇溢椅沂泄逸蚁夷邑怡绎彝裔姨熠贻矣屹颐倚诣胰奕翌疙弈轶蛾驿壹猗臆弋铱旖漪迤佚翊诒怿痍懿饴峄揖眙镒仡黟肄咿翳挹缢呓刈咦嶷羿钇殪荑薏蜴镱噫癔苡悒嗌瘗衤佾埸圯舣酏劓", - "an": "安案按岸暗鞍氨俺胺铵谙庵黯鹌桉埯犴揞厂广", - "han": "厂汉韩含旱寒汗涵函喊憾罕焊翰邯撼瀚憨捍酣悍鼾邗颔蚶晗菡旰顸犴焓撖", - "ang": "昂仰盎肮", - "ao": "奥澳傲熬凹鳌敖遨鏖袄坳翱嗷拗懊岙螯骜獒鏊艹媪廒聱", - "wa": "瓦挖娃洼袜蛙凹哇佤娲呙腽", - "yu": "于与育余预域予遇奥语誉玉鱼雨渔裕愈娱欲吁舆宇羽逾豫郁寓吾狱喻御浴愉禹俞邪榆愚渝尉淤虞屿峪粥驭瑜禺毓钰隅芋熨瘀迂煜昱汩於臾盂聿竽萸妪腴圄谕觎揄龉谀俣馀庾妤瘐鬻欤鹬阈嵛雩鹆圉蜮伛纡窬窳饫蓣狳肀舁蝓燠", - "niu": "牛纽扭钮拗妞忸狃", - "o": "哦噢喔", - "ba": "把八巴拔伯吧坝爸霸罢芭跋扒叭靶疤笆耙鲅粑岜灞钯捌菝魃茇", - "pa": "怕帕爬扒趴琶啪葩耙杷钯筢", - "pi": "被批副否皮坏辟啤匹披疲罢僻毗坯脾譬劈媲屁琵邳裨痞癖陂丕枇噼霹吡纰砒铍淠郫埤濞睥芘蚍圮鼙罴蜱疋貔仳庀擗甓陴", - "bi": "比必币笔毕秘避闭佛辟壁弊彼逼碧鼻臂蔽拂泌璧庇痹毙弼匕鄙陛裨贲敝蓖吡篦纰俾铋毖筚荸薜婢哔跸濞秕荜愎睥妣芘箅髀畀滗狴萆嬖襞舭", - "bai": "百白败摆伯拜柏佰掰呗擘捭稗", - "bo": "波博播勃拨薄佛伯玻搏柏泊舶剥渤卜驳簿脖膊簸菠礴箔铂亳钵帛擘饽跛钹趵檗啵鹁擗踣", - "bei": "北被备倍背杯勃贝辈悲碑臂卑悖惫蓓陂钡狈呗焙碚褙庳鞴孛鹎邶鐾", - "ban": "办版半班般板颁伴搬斑扮拌扳瓣坂阪绊钣瘢舨癍", - "pan": "判盘番潘攀盼拚畔胖叛拌蹒磐爿蟠泮袢襻丬", - "bin": "份宾频滨斌彬濒殡缤鬓槟摈膑玢镔豳髌傧", - "bang": "帮邦彭旁榜棒膀镑绑傍磅蚌谤梆浜蒡", - "pang": "旁庞乓磅螃彷滂逄耪", - "beng": "泵崩蚌蹦迸绷甭嘣甏堋", - "bao": "报保包宝暴胞薄爆炮饱抱堡剥鲍曝葆瀑豹刨褒雹孢苞煲褓趵鸨龅勹", - "bu": "不部步布补捕堡埔卜埠簿哺怖钚卟瓿逋晡醭钸", - "pu": "普暴铺浦朴堡葡谱埔扑仆蒲曝瀑溥莆圃璞濮菩蹼匍噗氆攵镨攴镤", - "mian": "面棉免绵缅勉眠冕娩腼渑湎沔黾宀眄", - "po": "破繁坡迫颇朴泊婆泼魄粕鄱珀陂叵笸泺皤钋钷", - "fan": "反范犯繁饭泛翻凡返番贩烦拚帆樊藩矾梵蕃钒幡畈蘩蹯燔", - "fu": "府服副负富复福夫妇幅付扶父符附腐赴佛浮覆辅傅伏抚赋辐腹弗肤阜袱缚甫氟斧孚敷俯拂俘咐腑孵芙涪釜脯茯馥宓绂讣呋罘麸蝠匐芾蜉跗凫滏蝮驸绋蚨砩桴赙菔呒趺苻拊阝鲋怫稃郛莩幞祓艴黻黼鳆", - "ben": "本体奔苯笨夯贲锛畚坌", - "feng": "风丰封峰奉凤锋冯逢缝蜂枫疯讽烽俸沣酆砜葑唪", - "bian": "变便边编遍辩鞭辨贬匾扁卞汴辫砭苄蝙鳊弁窆笾煸褊碥忭缏", - "pian": "便片篇偏骗翩扁骈胼蹁谝犏缏", - "zhen": "镇真针圳振震珍阵诊填侦臻贞枕桢赈祯帧甄斟缜箴疹砧榛鸩轸稹溱蓁胗椹朕畛浈", - "biao": "表标彪镖裱飚膘飙镳婊骠飑杓髟鳔灬瘭", - "piao": "票朴漂飘嫖瓢剽缥殍瞟骠嘌莩螵", - "huo": "和活或货获火伙惑霍祸豁嚯藿锪蠖钬耠镬夥灬劐攉", - "bie": "别鳖憋瘪蹩", - "min": "民敏闽闵皿泯岷悯珉抿黾缗玟愍苠鳘", - "fen": "分份纷奋粉氛芬愤粪坟汾焚酚吩忿棼玢鼢瀵偾鲼", - "bing": "并病兵冰屏饼炳秉丙摒柄槟禀枋邴冫", - "geng": "更耕颈庚耿梗埂羹哽赓绠鲠", - "fang": "方放房防访纺芳仿坊妨肪邡舫彷枋鲂匚钫", - "xian": "现先县见线限显险献鲜洗宪纤陷闲贤仙衔掀咸嫌掺羡弦腺痫娴舷馅酰铣冼涎暹籼锨苋蚬跹岘藓燹鹇氙莶霰跣猃彡祆筅", - "fou": "不否缶", - "ca": "拆擦嚓礤", - "cha": "查察差茶插叉刹茬楂岔诧碴嚓喳姹杈汊衩搽槎镲苴檫馇锸猹", - "cai": "才采财材菜彩裁蔡猜踩睬", - "can": "参残餐灿惨蚕掺璨惭粲孱骖黪", - "shen": "信深参身神什审申甚沈伸慎渗肾绅莘呻婶娠砷蜃哂椹葚吲糁渖诜谂矧胂", - "cen": "参岑涔", - "san": "三参散伞叁糁馓毵", - "cang": "藏仓苍沧舱臧伧", - "zang": "藏脏葬赃臧奘驵", - "chen": "称陈沈沉晨琛臣尘辰衬趁忱郴宸谌碜嗔抻榇伧谶龀肜", - "cao": "草操曹槽糙嘈漕螬艚屮", - "ce": "策测册侧厕栅恻", - "ze": "责则泽择侧咋啧仄箦赜笮舴昃迮帻", - "zhai": "债择齐宅寨侧摘窄斋祭翟砦瘵哜", - "dao": "到道导岛倒刀盗稻蹈悼捣叨祷焘氘纛刂帱忉", - "ceng": "层曾蹭噌", - "zha": "查扎炸诈闸渣咋乍榨楂札栅眨咤柞喳喋铡蚱吒怍砟揸痄哳齄", - "chai": "差拆柴钗豺侪虿瘥", - "ci": "次此差词辞刺瓷磁兹慈茨赐祠伺雌疵鹚糍呲粢", - "zi": "资自子字齐咨滋仔姿紫兹孜淄籽梓鲻渍姊吱秭恣甾孳訾滓锱辎趑龇赀眦缁呲笫谘嵫髭茈粢觜耔", - "cuo": "措错磋挫搓撮蹉锉厝嵯痤矬瘥脞鹾", - "chan": "产单阐崭缠掺禅颤铲蝉搀潺蟾馋忏婵孱觇廛谄谗澶骣羼躔蒇冁", - "shan": "山单善陕闪衫擅汕扇掺珊禅删膳缮赡鄯栅煽姗跚鳝嬗潸讪舢苫疝掸膻钐剡蟮芟埏彡骟", - "zhan": "展战占站崭粘湛沾瞻颤詹斩盏辗绽毡栈蘸旃谵搌", - "xin": "新心信辛欣薪馨鑫芯锌忻莘昕衅歆囟忄镡", - "lian": "联连练廉炼脸莲恋链帘怜涟敛琏镰濂楝鲢殓潋裢裣臁奁莶蠊蔹", - "chang": "场长厂常偿昌唱畅倡尝肠敞倘猖娼淌裳徜昶怅嫦菖鲳阊伥苌氅惝鬯", - "zhang": "长张章障涨掌帐胀彰丈仗漳樟账杖璋嶂仉瘴蟑獐幛鄣嫜", - "chao": "超朝潮炒钞抄巢吵剿绰嘲晁焯耖怊", - "zhao": "着照招找召朝赵兆昭肇罩钊沼嘲爪诏濯啁棹笊", - "zhou": "调州周洲舟骤轴昼宙粥皱肘咒帚胄绉纣妯啁诌繇碡籀酎荮", - "che": "车彻撤尺扯澈掣坼砗屮", - "ju": "车局据具举且居剧巨聚渠距句拒俱柜菊拘炬桔惧矩鞠驹锯踞咀瞿枸掬沮莒橘飓疽钜趄踽遽琚龃椐苣裾榘狙倨榉苴讵雎锔窭鞫犋屦醵", - "cheng": "成程城承称盛抢乘诚呈净惩撑澄秤橙骋逞瞠丞晟铛埕塍蛏柽铖酲裎枨", - "rong": "容荣融绒溶蓉熔戎榕茸冗嵘肜狨蝾", - "sheng": "生声升胜盛乘圣剩牲甸省绳笙甥嵊晟渑眚", - "deng": "等登邓灯澄凳瞪蹬噔磴嶝镫簦戥", - "zhi": "制之治质职只志至指织支值知识直致执置止植纸拓智殖秩旨址滞氏枝芝脂帜汁肢挚稚酯掷峙炙栉侄芷窒咫吱趾痔蜘郅桎雉祉郦陟痣蛭帙枳踯徵胝栀贽祗豸鸷摭轵卮轾彘觯絷跖埴夂黹忮骘膣踬", - "zheng": "政正证争整征郑丁症挣蒸睁铮筝拯峥怔诤狰徵钲", - "tang": "堂唐糖汤塘躺趟倘棠烫淌膛搪镗傥螳溏帑羰樘醣螗耥铴瑭", - "chi": "持吃池迟赤驰尺斥齿翅匙痴耻炽侈弛叱啻坻眙嗤墀哧茌豉敕笞饬踟蚩柢媸魑篪褫彳鸱螭瘛眵傺", - "shi": "是时实事市十使世施式势视识师史示石食始士失适试什泽室似诗饰殖释驶氏硕逝湿蚀狮誓拾尸匙仕柿矢峙侍噬嗜栅拭嘘屎恃轼虱耆舐莳铈谥炻豕鲥饣螫酾筮埘弑礻蓍鲺贳", - "qi": "企其起期气七器汽奇齐启旗棋妻弃揭枝歧欺骑契迄亟漆戚岂稽岐琦栖缉琪泣乞砌祁崎绮祺祈凄淇杞脐麒圻憩芪伎俟畦耆葺沏萋骐鳍綦讫蕲屺颀亓碛柒啐汔綮萁嘁蛴槭欹芑桤丌蜞", - "chuai": "揣踹啜搋膪", - "tuo": "托脱拓拖妥驼陀沱鸵驮唾椭坨佗砣跎庹柁橐乇铊沲酡鼍箨柝", - "duo": "多度夺朵躲铎隋咄堕舵垛惰哆踱跺掇剁柁缍沲裰哚隳", - "xue": "学血雪削薛穴靴谑噱鳕踅泶彐", - "chong": "重种充冲涌崇虫宠忡憧舂茺铳艟", - "chou": "筹抽绸酬愁丑臭仇畴稠瞅踌惆俦瘳雠帱", - "qiu": "求球秋丘邱仇酋裘龟囚遒鳅虬蚯泅楸湫犰逑巯艽俅蝤赇鼽糗", - "xiu": "修秀休宿袖绣臭朽锈羞嗅岫溴庥馐咻髹鸺貅", - "chu": "出处础初助除储畜触楚厨雏矗橱锄滁躇怵绌搐刍蜍黜杵蹰亍樗憷楮", - "tuan": "团揣湍疃抟彖", - "zhui": "追坠缀揣椎锥赘惴隹骓缒", - "chuan": "传川船穿串喘椽舛钏遄氚巛舡", - "zhuan": "专转传赚砖撰篆馔啭颛", - "yuan": "元员院原源远愿园援圆缘袁怨渊苑宛冤媛猿垣沅塬垸鸳辕鸢瑗圜爰芫鼋橼螈眢箢掾", - "cuan": "窜攒篡蹿撺爨汆镩", - "chuang": "创床窗闯幢疮怆", - "zhuang": "装状庄壮撞妆幢桩奘僮戆", - "chui": "吹垂锤炊椎陲槌捶棰", - "chun": "春纯醇淳唇椿蠢鹑朐莼肫蝽", - "zhun": "准屯淳谆肫窀", - "cu": "促趋趣粗簇醋卒蹴猝蹙蔟殂徂", - "dun": "吨顿盾敦蹲墩囤沌钝炖盹遁趸砘礅", - "qu": "区去取曲趋渠趣驱屈躯衢娶祛瞿岖龋觑朐蛐癯蛆苣阒诎劬蕖蘧氍黢蠼璩麴鸲磲", - "xu": "需许续须序徐休蓄畜虚吁绪叙旭邪恤墟栩絮圩婿戌胥嘘浒煦酗诩朐盱蓿溆洫顼勖糈砉醑", - "chuo": "辍绰戳淖啜龊踔辶", - "zu": "组族足祖租阻卒俎诅镞菹", - "ji": "济机其技基记计系期际及集级几给积极己纪即继击既激绩急奇吉季齐疾迹鸡剂辑籍寄挤圾冀亟寂暨脊跻肌稽忌饥祭缉棘矶汲畸姬藉瘠骥羁妓讥稷蓟悸嫉岌叽伎鲫诘楫荠戟箕霁嵇觊麂畿玑笈犄芨唧屐髻戢佶偈笄跽蒺乩咭赍嵴虮掎齑殛鲚剞洎丌墼蕺彐芰哜", - "cong": "从丛匆聪葱囱琮淙枞骢苁璁", - "zong": "总从综宗纵踪棕粽鬃偬枞腙", - "cou": "凑辏腠楱", - "cui": "衰催崔脆翠萃粹摧璀瘁悴淬啐隹毳榱", - "wei": "为位委未维卫围违威伟危味微唯谓伪慰尾魏韦胃畏帷喂巍萎蔚纬潍尉渭惟薇苇炜圩娓诿玮崴桅偎逶倭猥囗葳隗痿猬涠嵬韪煨艉隹帏闱洧沩隈鲔軎", - "cun": "村存寸忖皴", - "zuo": "作做座左坐昨佐琢撮祚柞唑嘬酢怍笮阼胙", - "zuan": "钻纂攥缵躜", - "da": "大达打答搭沓瘩惮嗒哒耷鞑靼褡笪怛妲", - "dai": "大代带待贷毒戴袋歹呆隶逮岱傣棣怠殆黛甙埭诒绐玳呔迨", - "tai": "大台太态泰抬胎汰钛苔薹肽跆邰鲐酞骀炱", - "ta": "他它她拓塔踏塌榻沓漯獭嗒挞蹋趿遢铊鳎溻闼", - "dan": "但单石担丹胆旦弹蛋淡诞氮郸耽殚惮儋眈疸澹掸膻啖箪聃萏瘅赕", - "lu": "路六陆录绿露鲁卢炉鹿禄赂芦庐碌麓颅泸卤潞鹭辘虏璐漉噜戮鲈掳橹轳逯渌蓼撸鸬栌氇胪镥簏舻辂垆", - "tan": "谈探坦摊弹炭坛滩贪叹谭潭碳毯瘫檀痰袒坍覃忐昙郯澹钽锬", - "ren": "人任认仁忍韧刃纫饪妊荏稔壬仞轫亻衽", - "jie": "家结解价界接节她届介阶街借杰洁截姐揭捷劫戒皆竭桔诫楷秸睫藉拮芥诘碣嗟颉蚧孑婕疖桀讦疥偈羯袷哜喈卩鲒骱", - "yan": "研严验演言眼烟沿延盐炎燕岩宴艳颜殷彦掩淹阎衍铅雁咽厌焰堰砚唁焉晏檐蜒奄俨腌妍谚兖筵焱偃闫嫣鄢湮赝胭琰滟阉魇酽郾恹崦芫剡鼹菸餍埏谳讠厣罨", - "dang": "当党档荡挡宕砀铛裆凼菪谠", - "tao": "套讨跳陶涛逃桃萄淘掏滔韬叨洮啕绦饕鼗", - "tiao": "条调挑跳迢眺苕窕笤佻啁粜髫铫祧龆蜩鲦", - "te": "特忑忒铽慝", - "de": "的地得德底锝", - "dei": "得", - "di": "的地第提低底抵弟迪递帝敌堤蒂缔滴涤翟娣笛棣荻谛狄邸嘀砥坻诋嫡镝碲骶氐柢籴羝睇觌", - "ti": "体提题弟替梯踢惕剔蹄棣啼屉剃涕锑倜悌逖嚏荑醍绨鹈缇裼", - "tui": "推退弟腿褪颓蜕忒煺", - "you": "有由又优游油友右邮尤忧幼犹诱悠幽佑釉柚铀鱿囿酉攸黝莠猷蝣疣呦蚴莸莜铕宥繇卣牖鼬尢蚰侑", - "dian": "电点店典奠甸碘淀殿垫颠滇癫巅惦掂癜玷佃踮靛钿簟坫阽", - "tian": "天田添填甜甸恬腆佃舔钿阗忝殄畋栝掭", - "zhu": "主术住注助属逐宁著筑驻朱珠祝猪诸柱竹铸株瞩嘱贮煮烛苎褚蛛拄铢洙竺蛀渚伫杼侏澍诛茱箸炷躅翥潴邾槠舳橥丶瘃麈疰", - "nian": "年念酿辗碾廿捻撵拈蔫鲶埝鲇辇黏", - "diao": "调掉雕吊钓刁貂凋碉鲷叼铫铞", - "yao": "要么约药邀摇耀腰遥姚窑瑶咬尧钥谣肴夭侥吆疟妖幺杳舀窕窈曜鹞爻繇徭轺铫鳐崾珧", - "die": "跌叠蝶迭碟爹谍牒耋佚喋堞瓞鲽垤揲蹀", - "she": "设社摄涉射折舍蛇拾舌奢慑赦赊佘麝歙畲厍猞揲滠", - "ye": "业也夜叶射野液冶喝页爷耶邪咽椰烨掖拽曳晔谒腋噎揶靥邺铘揲", - "xie": "些解协写血叶谢械鞋胁斜携懈契卸谐泄蟹邪歇泻屑挟燮榭蝎撷偕亵楔颉缬邂鲑瀣勰榍薤绁渫廨獬躞", - "zhe": "这者着著浙折哲蔗遮辙辄柘锗褶蜇蛰鹧谪赭摺乇磔螫", - "ding": "定订顶丁鼎盯钉锭叮仃铤町酊啶碇腚疔玎耵", - "diu": "丢铥", - "ting": "听庭停厅廷挺亭艇婷汀铤烃霆町蜓葶梃莛", - "dong": "动东董冬洞懂冻栋侗咚峒氡恫胴硐垌鸫岽胨", - "tong": "同通统童痛铜桶桐筒彤侗佟潼捅酮砼瞳恸峒仝嗵僮垌茼", - "zhong": "中重种众终钟忠仲衷肿踵冢盅蚣忪锺舯螽夂", - "dou": "都斗读豆抖兜陡逗窦渎蚪痘蔸钭篼", - "du": "度都独督读毒渡杜堵赌睹肚镀渎笃竺嘟犊妒牍蠹椟黩芏髑", - "duan": "断段短端锻缎煅椴簖", - "dui": "对队追敦兑堆碓镦怼憝", - "rui": "瑞兑锐睿芮蕊蕤蚋枘", - "yue": "月说约越乐跃兑阅岳粤悦曰钥栎钺樾瀹龠哕刖", - "tun": "吞屯囤褪豚臀饨暾氽", - "hui": "会回挥汇惠辉恢徽绘毁慧灰贿卉悔秽溃荟晖彗讳诲珲堕诙蕙晦睢麾烩茴喙桧蛔洄浍虺恚蟪咴隳缋哕", - "wu": "务物无五武午吴舞伍污乌误亡恶屋晤悟吾雾芜梧勿巫侮坞毋诬呜钨邬捂鹜兀婺妩於戊鹉浯蜈唔骛仵焐芴鋈庑鼯牾怃圬忤痦迕杌寤阢", - "ya": "亚压雅牙押鸭呀轧涯崖邪芽哑讶鸦娅衙丫蚜碣垭伢氩桠琊揠吖睚痖疋迓岈砑", - "he": "和合河何核盖贺喝赫荷盒鹤吓呵苛禾菏壑褐涸阂阖劾诃颌嗬貉曷翮纥盍", - "wo": "我握窝沃卧挝涡斡渥幄蜗喔倭莴龌肟硪", - "en": "恩摁蒽", - "n": "嗯唔", - "er": "而二尔儿耳迩饵洱贰铒珥佴鸸鲕", - "fa": "发法罚乏伐阀筏砝垡珐", - "quan": "全权券泉圈拳劝犬铨痊诠荃醛蜷颧绻犭筌鬈悛辁畎", - "fei": "费非飞肥废菲肺啡沸匪斐蜚妃诽扉翡霏吠绯腓痱芾淝悱狒榧砩鲱篚镄", - "pei": "配培坏赔佩陪沛裴胚妃霈淠旆帔呸醅辔锫", - "ping": "平评凭瓶冯屏萍苹乒坪枰娉俜鲆", - "fo": "佛", - "hu": "和护许户核湖互乎呼胡戏忽虎沪糊壶葫狐蝴弧瑚浒鹄琥扈唬滹惚祜囫斛笏芴醐猢怙唿戽槲觳煳鹕冱瓠虍岵鹱烀轷", - "ga": "夹咖嘎尬噶旮伽尕钆尜", - "ge": "个合各革格歌哥盖隔割阁戈葛鸽搁胳舸疙铬骼蛤咯圪镉颌仡硌嗝鬲膈纥袼搿塥哿虼", - "ha": "哈蛤铪", - "xia": "下夏峡厦辖霞夹虾狭吓侠暇遐瞎匣瑕唬呷黠硖罅狎瘕柙", - "gai": "改该盖概溉钙丐芥赅垓陔戤", - "hai": "海还害孩亥咳骸骇氦嗨胲醢", - "gan": "干感赶敢甘肝杆赣乾柑尴竿秆橄矸淦苷擀酐绀泔坩旰疳澉", - "gang": "港钢刚岗纲冈杠缸扛肛罡戆筻", - "jiang": "将强江港奖讲降疆蒋姜浆匠酱僵桨绛缰犟豇礓洚茳糨耩", - "hang": "行航杭巷夯吭桁沆绗颃", - "gong": "工公共供功红贡攻宫巩龚恭拱躬弓汞蚣珙觥肱廾", - "hong": "红宏洪轰虹鸿弘哄烘泓訇蕻闳讧荭黉薨", - "guang": "广光逛潢犷胱咣桄", - "qiong": "穷琼穹邛茕筇跫蛩銎", - "gao": "高告搞稿膏糕镐皋羔锆杲郜睾诰藁篙缟槁槔", - "hao": "好号毫豪耗浩郝皓昊皋蒿壕灏嚎濠蚝貉颢嗥薅嚆", - "li": "理力利立里李历例离励礼丽黎璃厉厘粒莉梨隶栗荔沥犁漓哩狸藜罹篱鲤砺吏澧俐骊溧砾莅锂笠蠡蛎痢雳俪傈醴栎郦俚枥喱逦娌鹂戾砬唳坜疠蜊黧猁鬲粝蓠呖跞疬缡鲡鳢嫠詈悝苈篥轹", - "jia": "家加价假佳架甲嘉贾驾嫁夹稼钾挟拮迦伽颊浃枷戛荚痂颉镓笳珈岬胛袈郏葭袷瘕铗跏蛱恝哿", - "luo": "落罗络洛逻螺锣骆萝裸漯烙摞骡咯箩珞捋荦硌雒椤镙跞瘰泺脶猡倮蠃", - "ke": "可科克客刻课颗渴壳柯棵呵坷恪苛咳磕珂稞瞌溘轲窠嗑疴蝌岢铪颏髁蚵缂氪骒钶锞", - "qia": "卡恰洽掐髂袷咭葜", - "gei": "给", - "gen": "根跟亘艮哏茛", - "hen": "很狠恨痕哏", - "gou": "构购够句沟狗钩拘勾苟垢枸篝佝媾诟岣彀缑笱鞲觏遘", - "kou": "口扣寇叩抠佝蔻芤眍筘", - "gu": "股古顾故固鼓骨估谷贾姑孤雇辜菇沽咕呱锢钴箍汩梏痼崮轱鸪牯蛊诂毂鹘菰罟嘏臌觚瞽蛄酤牿鲴", - "pai": "牌排派拍迫徘湃俳哌蒎", - "gua": "括挂瓜刮寡卦呱褂剐胍诖鸹栝呙", - "tou": "投头透偷愉骰亠", - "guai": "怪拐乖", - "kuai": "会快块筷脍蒯侩浍郐蒉狯哙", - "guan": "关管观馆官贯冠惯灌罐莞纶棺斡矜倌鹳鳏盥掼涫", - "wan": "万完晚湾玩碗顽挽弯蔓丸莞皖宛婉腕蜿惋烷琬畹豌剜纨绾脘菀芄箢", - "ne": "呢哪呐讷疒", - "gui": "规贵归轨桂柜圭鬼硅瑰跪龟匮闺诡癸鳜桧皈鲑刽晷傀眭妫炅庋簋刿宄匦", - "jun": "军均俊君峻菌竣钧骏龟浚隽郡筠皲麇捃", - "jiong": "窘炯迥炅冂扃", - "jue": "决绝角觉掘崛诀獗抉爵嚼倔厥蕨攫珏矍蹶谲镢鳜噱桷噘撅橛孓觖劂爝", - "gun": "滚棍辊衮磙鲧绲丨", - "hun": "婚混魂浑昏棍珲荤馄诨溷阍", - "guo": "国过果郭锅裹帼涡椁囗蝈虢聒埚掴猓崞蜾呙馘", - "hei": "黑嘿嗨", - "kan": "看刊勘堪坎砍侃嵌槛瞰阚龛戡凵莰", - "heng": "衡横恒亨哼珩桁蘅", - "mo": "万没么模末冒莫摩墨默磨摸漠脉膜魔沫陌抹寞蘑摹蓦馍茉嘿谟秣蟆貉嫫镆殁耱嬷麽瘼貊貘", - "peng": "鹏朋彭膨蓬碰苹棚捧亨烹篷澎抨硼怦砰嘭蟛堋", - "hou": "后候厚侯猴喉吼逅篌糇骺後鲎瘊堠", - "hua": "化华划话花画滑哗豁骅桦猾铧砉", - "huai": "怀坏淮徊槐踝", - "huan": "还环换欢患缓唤焕幻痪桓寰涣宦垸洹浣豢奂郇圜獾鲩鬟萑逭漶锾缳擐", - "xun": "讯训迅孙寻询循旬巡汛勋逊熏徇浚殉驯鲟薰荀浔洵峋埙巽郇醺恂荨窨蕈曛獯", - "huang": "黄荒煌皇凰慌晃潢谎惶簧璜恍幌湟蝗磺隍徨遑肓篁鳇蟥癀", - "nai": "能乃奶耐奈鼐萘氖柰佴艿", - "luan": "乱卵滦峦鸾栾銮挛孪脔娈", - "qie": "切且契窃茄砌锲怯伽惬妾趄挈郄箧慊", - "jian": "建间件见坚检健监减简艰践兼鉴键渐柬剑尖肩舰荐箭浅剪俭碱茧奸歼拣捡煎贱溅槛涧堑笺谏饯锏缄睑謇蹇腱菅翦戬毽笕犍硷鞯牮枧湔鲣囝裥踺搛缣鹣蒹谫僭戋趼楗", - "nan": "南难男楠喃囡赧腩囝蝻", - "qian": "前千钱签潜迁欠纤牵浅遣谦乾铅歉黔谴嵌倩钳茜虔堑钎骞阡掮钤扦芊犍荨仟芡悭缱佥愆褰凵肷岍搴箝慊椠", - "qiang": "强抢疆墙枪腔锵呛羌蔷襁羟跄樯戕嫱戗炝镪锖蜣", - "xiang": "向项相想乡象响香降像享箱羊祥湘详橡巷翔襄厢镶飨饷缃骧芗庠鲞葙蟓", - "jiao": "教交较校角觉叫脚缴胶轿郊焦骄浇椒礁佼蕉娇矫搅绞酵剿嚼饺窖跤蛟侥狡姣皎茭峤铰醮鲛湫徼鹪僬噍艽挢敫", - "zhuo": "着著缴桌卓捉琢灼浊酌拙茁涿镯淖啄濯焯倬擢斫棹诼浞禚", - "qiao": "桥乔侨巧悄敲俏壳雀瞧翘窍峭锹撬荞跷樵憔鞘橇峤诮谯愀鞒硗劁缲", - "xiao": "小效销消校晓笑肖削孝萧俏潇硝宵啸嚣霄淆哮筱逍姣箫骁枭哓绡蛸崤枵魈", - "si": "司四思斯食私死似丝饲寺肆撕泗伺嗣祀厮驷嘶锶俟巳蛳咝耜笥纟糸鸶缌澌姒汜厶兕", - "kai": "开凯慨岂楷恺揩锴铠忾垲剀锎蒈", - "jin": "进金今近仅紧尽津斤禁锦劲晋谨筋巾浸襟靳瑾烬缙钅矜觐堇馑荩噤廑妗槿赆衿卺", - "qin": "亲勤侵秦钦琴禽芹沁寝擒覃噙矜嗪揿溱芩衾廑锓吣檎螓", - "jing": "经京精境竞景警竟井惊径静劲敬净镜睛晶颈荆兢靖泾憬鲸茎腈菁胫阱旌粳靓痉箐儆迳婧肼刭弪獍", - "ying": "应营影英景迎映硬盈赢颖婴鹰荧莹樱瑛蝇萦莺颍膺缨瀛楹罂荥萤鹦滢蓥郢茔嘤璎嬴瘿媵撄潆", - "jiu": "就究九酒久救旧纠舅灸疚揪咎韭玖臼柩赳鸠鹫厩啾阄桕僦鬏", - "zui": "最罪嘴醉咀蕞觜", - "juan": "卷捐圈眷娟倦绢隽镌涓鹃鄄蠲狷锩桊", - "suan": "算酸蒜狻", - "yun": "员运云允孕蕴韵酝耘晕匀芸陨纭郧筠恽韫郓氲殒愠昀菀狁", - "qun": "群裙逡麇", - "ka": "卡喀咖咔咯佧胩", - "kang": "康抗扛慷炕亢糠伉钪闶", - "keng": "坑铿吭", - "kao": "考靠烤拷铐栲尻犒", - "ken": "肯垦恳啃龈裉", - "yin": "因引银印音饮阴隐姻殷淫尹荫吟瘾寅茵圻垠鄞湮蚓氤胤龈窨喑铟洇狺夤廴吲霪茚堙", - "kong": "空控孔恐倥崆箜", - "ku": "苦库哭酷裤枯窟挎骷堀绔刳喾", - "kua": "跨夸垮挎胯侉", - "kui": "亏奎愧魁馈溃匮葵窥盔逵睽馗聩喟夔篑岿喹揆隗傀暌跬蒉愦悝蝰", - "kuan": "款宽髋", - "kuang": "况矿框狂旷眶匡筐邝圹哐贶夼诳诓纩", - "que": "确却缺雀鹊阙瘸榷炔阕悫", - "kun": "困昆坤捆琨锟鲲醌髡悃阃", - "kuo": "扩括阔廓蛞", - "la": "拉落垃腊啦辣蜡喇剌旯砬邋瘌", - "lai": "来莱赖睐徕籁涞赉濑癞崃疠铼", - "lan": "兰览蓝篮栏岚烂滥缆揽澜拦懒榄斓婪阑褴罱啉谰镧漤", - "lin": "林临邻赁琳磷淋麟霖鳞凛拎遴蔺吝粼嶙躏廪檩啉辚膦瞵懔", - "lang": "浪朗郎廊狼琅榔螂阆锒莨啷蒗稂", - "liang": "量两粮良辆亮梁凉谅粱晾靓踉莨椋魉墚", - "lao": "老劳落络牢捞涝烙姥佬崂唠酪潦痨醪铑铹栳耢", - "mu": "目模木亩幕母牧莫穆姆墓慕牟牡募睦缪沐暮拇姥钼苜仫毪坶", - "le": "了乐勒肋叻鳓嘞仂泐", - "lei": "类累雷勒泪蕾垒磊擂镭肋羸耒儡嫘缧酹嘞诔檑", - "sui": "随岁虽碎尿隧遂髓穗绥隋邃睢祟濉燧谇眭荽", - "lie": "列烈劣裂猎冽咧趔洌鬣埒捩躐", - "leng": "冷愣棱楞塄", - "ling": "领令另零灵龄陵岭凌玲铃菱棱伶羚苓聆翎泠瓴囹绫呤棂蛉酃鲮柃", - "lia": "俩", - "liao": "了料疗辽廖聊寥缪僚燎缭撂撩嘹潦镣寮蓼獠钌尥鹩", - "liu": "流刘六留柳瘤硫溜碌浏榴琉馏遛鎏骝绺镏旒熘鹨锍", - "lun": "论轮伦仑纶沦抡囵", - "lv": "率律旅绿虑履吕铝屡氯缕滤侣驴榈闾偻褛捋膂稆", - "lou": "楼露漏陋娄搂篓喽镂偻瘘髅耧蝼嵝蒌", - "mao": "贸毛矛冒貌茂茅帽猫髦锚懋袤牦卯铆耄峁瑁蟊茆蝥旄泖昴瞀", - "long": "龙隆弄垄笼拢聋陇胧珑窿茏咙砻垅泷栊癃", - "nong": "农浓弄脓侬哝", - "shuang": "双爽霜孀泷", - "shu": "术书数属树输束述署朱熟殊蔬舒疏鼠淑叔暑枢墅俞曙抒竖蜀薯梳戍恕孰沭赎庶漱塾倏澍纾姝菽黍腧秫毹殳疋摅", - "shuai": "率衰帅摔甩蟀", - "lve": "略掠锊", - "ma": "么马吗摩麻码妈玛嘛骂抹蚂唛蟆犸杩", - "me": "么麽", - "mai": "买卖麦迈脉埋霾荬劢", - "man": "满慢曼漫埋蔓瞒蛮鳗馒幔谩螨熳缦镘颟墁鞔", - "mi": "米密秘迷弥蜜谜觅靡泌眯麋猕谧咪糜宓汨醚嘧弭脒冖幂祢縻蘼芈糸敉", - "men": "们门闷瞒汶扪焖懑鞔钔", - "mang": "忙盲茫芒氓莽蟒邙硭漭", - "meng": "蒙盟梦猛孟萌氓朦锰檬勐懵蟒蜢虻黾蠓艨甍艋瞢礞", - "miao": "苗秒妙描庙瞄缪渺淼藐缈邈鹋杪眇喵", - "mou": "某谋牟缪眸哞鍪蛑侔厶", - "miu": "缪谬", - "mei": "美没每煤梅媒枚妹眉魅霉昧媚玫酶镁湄寐莓袂楣糜嵋镅浼猸鹛", - "wen": "文问闻稳温纹吻蚊雯紊瘟汶韫刎璺玟阌", - "mie": "灭蔑篾乜咩蠛", - "ming": "明名命鸣铭冥茗溟酩瞑螟暝", - "na": "内南那纳拿哪娜钠呐捺衲镎肭", - "nei": "内那哪馁", - "nuo": "难诺挪娜糯懦傩喏搦锘", - "ruo": "若弱偌箬", - "nang": "囊馕囔曩攮", - "nao": "脑闹恼挠瑙淖孬垴铙桡呶硇猱蛲", - "ni": "你尼呢泥疑拟逆倪妮腻匿霓溺旎昵坭铌鲵伲怩睨猊", - "nen": "嫩恁", - "neng": "能", - "nin": "您恁", - "niao": "鸟尿溺袅脲茑嬲", - "nie": "摄聂捏涅镍孽捻蘖啮蹑嗫臬镊颞乜陧", - "niang": "娘酿", - "ning": "宁凝拧泞柠咛狞佞聍甯", - "nu": "努怒奴弩驽帑孥胬", - "nv": "女钕衄恧", - "ru": "入如女乳儒辱汝茹褥孺濡蠕嚅缛溽铷洳薷襦颥蓐", - "nuan": "暖", - "nve": "虐疟", - "re": "热若惹喏", - "ou": "区欧偶殴呕禺藕讴鸥瓯沤耦怄", - "pao": "跑炮泡抛刨袍咆疱庖狍匏脬", - "pou": "剖掊裒", - "pen": "喷盆湓", - "pie": "瞥撇苤氕丿", - "pin": "品贫聘频拼拚颦姘嫔榀牝", - "se": "色塞瑟涩啬穑铯槭", - "qing": "情青清请亲轻庆倾顷卿晴氢擎氰罄磬蜻箐鲭綮苘黥圊檠謦", - "zan": "赞暂攒堑昝簪糌瓒錾趱拶", - "shao": "少绍召烧稍邵哨韶捎勺梢鞘芍苕劭艄筲杓潲", - "sao": "扫骚嫂梢缫搔瘙臊埽缲鳋", - "sha": "沙厦杀纱砂啥莎刹杉傻煞鲨霎嗄痧裟挲铩唼歃", - "xuan": "县选宣券旋悬轩喧玄绚渲璇炫萱癣漩眩暄煊铉楦泫谖痃碹揎镟儇", - "ran": "然染燃冉苒髯蚺", - "rang": "让壤攘嚷瓤穰禳", - "rao": "绕扰饶娆桡荛", - "reng": "仍扔", - "ri": "日", - "rou": "肉柔揉糅鞣蹂", - "ruan": "软阮朊", - "run": "润闰", - "sa": "萨洒撒飒卅仨脎", - "suo": "所些索缩锁莎梭琐嗦唆唢娑蓑羧挲桫嗍睃", - "sai": "思赛塞腮噻鳃", - "shui": "说水税谁睡氵", - "sang": "桑丧嗓搡颡磉", - "sen": "森", - "seng": "僧", - "shai": "筛晒", - "shang": "上商尚伤赏汤裳墒晌垧觞殇熵绱", - "xing": "行省星腥猩惺兴刑型形邢饧醒幸杏性姓陉荇荥擤悻硎", - "shou": "收手受首售授守寿瘦兽狩绶艏扌", - "shuo": "说数硕烁朔铄妁槊蒴搠", - "su": "速素苏诉缩塑肃俗宿粟溯酥夙愫簌稣僳谡涑蔌嗉觫", - "shua": "刷耍唰", - "shuan": "栓拴涮闩", - "shun": "顺瞬舜吮", - "song": "送松宋讼颂耸诵嵩淞怂悚崧凇忪竦菘", - "sou": "艘搜擞嗽嗖叟馊薮飕嗾溲锼螋瞍", - "sun": "损孙笋荪榫隼狲飧", - "teng": "腾疼藤滕誊", - "tie": "铁贴帖餮萜", - "tu": "土突图途徒涂吐屠兔秃凸荼钍菟堍酴", - "wai": "外歪崴", - "wang": "王望往网忘亡旺汪枉妄惘罔辋魍", - "weng": "翁嗡瓮蓊蕹", - "zhua": "抓挝爪", - "yang": "样养央阳洋扬杨羊详氧仰秧痒漾疡泱殃恙鸯徉佯怏炀烊鞅蛘", - "xiong": "雄兄熊胸凶匈汹芎", - "yo": "哟唷", - "yong": "用永拥勇涌泳庸俑踊佣咏雍甬镛臃邕蛹恿慵壅痈鳙墉饔喁", - "za": "杂扎咱砸咋匝咂拶", - "zai": "在再灾载栽仔宰哉崽甾", - "zao": "造早遭枣噪灶燥糟凿躁藻皂澡蚤唣", - "zei": "贼", - "zen": "怎谮", - "zeng": "增曾综赠憎锃甑罾缯", - "zhei": "这", - "zou": "走邹奏揍诹驺陬楱鄹鲰", - "zhuai": "转拽", - "zun": "尊遵鳟樽撙", - "dia": "嗲", - "nou": "耨" -}; -window.pinyin_dict_withtone = "yī,dīng zhēng,kǎo qiǎo yú,qī,shàng,xià,hǎn,wàn mò,zhàng,sān,shàng shǎng,xià,qí jī,bù fǒu,yǔ yù yú,miǎn,gài,chǒu,chǒu,zhuān,qiě jū,pī,shì,shì,qiū,bǐng,yè,cóng,dōng,sī,chéng,diū,qiū,liǎng,diū,yǒu,liǎng,yán,bìng,sāng sàng,gǔn,jiū,gè gě,yā,pán,zhōng zhòng,jǐ,jiè,fēng,guàn kuàng,chuàn,chǎn,lín,zhuó,zhǔ,bā,wán,dān,wéi wèi,zhǔ,jǐng,lì lí,jǔ,piě,fú,yí jí,yì,nǎi,wǔ,jiǔ,jiǔ,tuō zhé,me yāo mó ma,yì,yī,zhī,wū,zhà,hū,fá,lè yuè,yín,pīng,pāng,qiáo,hǔ,guāi,chéng shèng,chéng shèng,yǐ,háo yǐ,yǐ,miē niè,jiǔ,qǐ,yě,xí,xiāng,gài,jiǔ,xià,hù,shū,dǒu,shǐ,jī,náng,jiā,none,shí,none,hū,mǎi,luàn,none,rǔ,xué,yǎn,fǔ,shā,nǎ,qián,suǒ,yú,zhù,zhě,qián gān,zhì luàn,guī,qián,luàn,lǐn lìn,yì,jué,le liǎo,gè mā,yú yǔ,zhēng,shì,shì,èr,chù,yú,kuī,yú,yún,hù,qí,wǔ,jǐng,sì,suì,gèn,gèn,yà,xiē suò,yà,qí zhāi,yā yà,jí qì,tóu,wáng wú,kàng,dà,jiāo,hài,yì,chǎn,hēng pēng,mǔ,ye,xiǎng,jīng,tíng,liàng,xiǎng,jīng,yè,qīn qìng,bó,yòu,xiè,dǎn dàn,lián,duǒ,wěi mén,rén,rén,jí,jí,wáng,yì,shén shí,rén,lè,dīng,zè,jǐn jìn,pū pú,chóu qiú,bā,zhǎng,jīn,jiè,bīng,réng,cóng zòng,fó,jīn sǎn,lún,bīng,cāng,zī zǐ zǎi,shì,tā,zhàng,fù,xiān,xiān,tuō chà duó,hóng,tóng,rèn,qiān,gǎn hàn,yì gē,bó,dài,líng lǐng lìng,yǐ,chào,cháng zhǎng,sā,cháng,yí,mù,mén,rèn,fǎn,chào miǎo,yǎng áng,qián,zhòng,pǐ pí,wò,wǔ,jiàn,jià jiè jie,yǎo fó,fēng,cāng,rèn rén,wáng,fèn bīn,dī,fǎng,zhōng,qǐ,pèi,yú,diào,dùn,wěn,yì,xǐn,kàng,yī,jí,ài,wǔ,jì qí,fú,fá,xiū xǔ,jìn yín,pī,dǎn,fū,tǎng,zhòng,yōu,huǒ,huì kuài,yǔ,cuì,yún,sǎn,wěi,chuán zhuàn,chē jū,yá,qiàn,shāng,chāng,lún,cāng chen,xùn,xìn,wěi,zhù,chǐ,xián xuán,nú nǔ,bó bǎi bà,gū gù,nǐ,nǐ nì,xiè,bàn,xù,líng,zhòu,shēn,qū,sì cì,bēng,sì shì,qié jiā gā,pī,yì,sì,yǐ chì,zhēng,diàn tián,hān gàn,mài,dàn,zhù,bù,qū,bǐ,zhāo shào,cǐ,wèi,dī,zhù,zuǒ,yòu,yǎng,tǐ tī bèn,zhàn diān,hé hē hè,bì,tuó,shé,yú,yì dié,fó fú bì bó,zuò,gōu kòu,nìng,tóng,nǐ,xiān,qú,yōng yòng,wǎ,qiān,yòu,kǎ,bāo,pèi,huí huái,gé,lǎo,xiáng,gé,yáng,bǎi,fǎ,mǐng,jiā,èr nài,bìng,jí,hěn,huó,guǐ,quán,tiāo,jiǎo,cì,yì,shǐ,xíng,shēn,tuō,kǎn,zhí,gāi,lái,yí,chǐ,kuǎ,gōng,lì,yīn,shì,mǐ,zhū,xù,yòu,ān,lù,móu,ér,lún,dòng tóng tǒng,chà,chì,xùn,gōng gòng,zhōu,yī,rú,cún jiàn,xiá,sì,dài,lǚ,ta,jiǎo yáo,zhēn,cè zè zhāi,qiáo,kuài,chái,nìng,nóng,jǐn,wǔ,hóu hòu,jiǒng,chěng tǐng,zhèn zhēn,zuò,hào,qīn,lǚ,jú,shù dōu,tǐng,shèn,tuó tuì,bó,nán,xiāo,biàn pián,tuǐ,yǔ,xì,cù,é,qiú,xú,guàng,kù,wù,jùn,yì,fǔ,liáng,zǔ,qiào xiào,lì,yǒng,hùn,jìng,qiàn,sàn,pěi,sú,fú,xī,lǐ,fǔ,pīng,bǎo,yú yù shù,sì qí,xiá,xìn shēn,xiū,yǔ,dì,chē jū,chóu,zhì,yǎn,liǎ,lì,lái,sī,jiǎn,xiū,fǔ,huò,jù,xiào,pái,jiàn,biào,chù tì,fèi,fèng,yà,ǎn,bèi,yù,xīn,bǐ,hǔ chí,chāng,zhī,bìng,jiù,yáo,cuì zú,liǎ,wǎn,lái,cāng,zǒng,gè gě,guān,bèi,tiǎn,shū,shū,mén,dǎo dào,tán tàn,jué juè,chuí,xìng,péng,tǎng cháng,hòu,yǐ,qī,tì,gàn,liàng jìng,jiè,suī,chàng chāng,jié,fǎng,zhí,kōng kǒng,juàn,zōng,jù,qiàn,ní,lún,zhuō,wō wēi,luǒ,sōng,lèng,hùn,dōng,zì,bèn,wǔ,jù,nǎi,cǎi,jiǎn,zhài,yē,zhí,shà,qīng,nìng,yīng,chēng chèn,qián,yǎn,ruǎn,zhòng tóng,chǔn,jiǎ jià,jì jié,wěi,yú,bǐng bìng,ruò,tí,wēi,piān,yàn,fēng,tǎng dàng,wò,è,xié,chě,shěng,kǎn,dì,zuò,chā,tíng,bèi,xiè,huáng,yǎo,zhàn,chǒu qiào,ān,yóu,jiàn,xū,zhā,cī,fù,bī,zhì,zǒng,miǎn,jí,yǐ,xiè,xún,cāi sī,duān,cè zè zhāi,zhēn,ǒu,tōu,tōu,bèi,zá zǎ,lǚ lóu,jié,wěi,fèn,cháng,kuǐ guī,sǒu,zhì sī,sù,xiā,fù,yuàn yuán,rǒng,lì,nù,yùn,jiǎng gòu,mà,bàng,diān,táng,hào,jié,xī xì,shān,qiàn jiān,què jué,cāng chen,chù,sǎn,bèi,xiào,róng,yáo,tà tàn,suō,yǎng,fá,bìng,jiā,dǎi,zài,tǎng,gǔ,bīn,chǔ,nuó,cān càn,lěi,cuī,yōng,zāo cáo,zǒng,péng,sǒng,ào,chuán zhuàn,yǔ,zhài,qī còu,shāng,chuǎng,jìng,chì,shǎ,hàn,zhāng,qīng,yān yàn,dì,xiè,lǚ lóu,bèi,piào biāo,jǐn jìn,liàn,lù,màn,qiān,xiān,tǎn tàn,yíng,dòng,zhuàn,xiàng,shàn,qiáo,jiǒng,tuǐ tuí,zǔn,pú,xī,láo,chǎng,guāng,liáo,qī,chēng dēng,zhàn zhuàn chán,wěi,jī,bō,huì,chuǎn,tiě jiàn,dàn,jiǎo yáo,jiù,sēng,fèn,xiàn,yù jú,è wù wū,jiāo,jiàn,tóng zhuàng,lǐn,bó,gù,xiān,sù,xiàn,jiāng,mǐn,yè,jìn,jià jie,qiào,pì,fēng,zhòu,ài,sài,yí,jùn,nóng,chán tǎn shàn,yì,dāng dàng,jǐng,xuān,kuài,jiǎn,chù,dān dàn,jiǎo,shǎ,zài,càn,bīn bìn,án àn,rú,tái,chóu,chái,lán,nǐ yì,jǐn,qiàn,méng,wǔ,níng,qióng,nǐ,cháng,liè,lěi,lǚ,kuǎng,bào,yù,biāo,zǎn,zhì,sì,yōu,háo,qìng,chèn,lì,téng,wěi,lǒng lóng lòng,chǔ,chán chàn,ráng xiāng,shū,huì xié,lì,luó,zǎn,nuó,tǎng,yǎn,léi,nàng nāng,ér,wù,yǔn,zān,yuán,xiōng,chōng,zhào,xiōng,xiān,guāng,duì ruì yuè,kè,duì ruì yuè,miǎn,tù,cháng zhǎng,ér,duì ruì yuè,ér,qīn,tù,sì,yǎn,yǎn,shǐ,shí kè,dǎng,qiān,dōu,fēn,máo,shēn,dōu,bǎi kè,jīng,lǐ,huǎng,rù,wáng,nèi,quán,liǎng,yú shù,bā,gōng,liù lù,xī,han,lán,gòng gōng,tiān,guān,xīng xìng,bīng,qí jī,jù,diǎn,zī cí,fēn,yǎng,jiān,shòu,jì,yì,jì,chǎn,jiōng,mào,rǎn,nèi nà,yuán,mǎo,gāng,rǎn,cè,jiōng,cè,zài,guǎ,jiǒng,mào,zhòu,mào mò,gòu,xú,miǎn,mì,rǒng,yín yóu,xiě,kǎn,jūn,nóng,yí,mí,shì,guān guàn,měng,zhǒng,zuì,yuān,míng,kòu,lín,fù,xiě,mì,bīng,dōng,tài,gāng,féng píng,bīng,hù,chōng chòng,jué,yà,kuàng,yě,lěng,pàn,fā,mǐn,dòng,xiǎn,liè,qià,jiān,jìng chēng,sōu,měi,tú,qī,gù,zhǔn,sōng,jìng chēng,liáng liàng,qìng,diāo,líng,dòng,gàn,jiǎn,yīn,còu,ái,lì,cāng,mǐng,zhǔn,cuī,sī,duó,jìn,lǐn,lǐn,níng,xī,dú,jī jǐ,fán,fán,fán,fèng,jū,chù chǔ,zhēng,fēng,mù,zhǐ,fú,fēng,píng,fēng,kǎi,huáng,kǎi,gān,dèng,píng,kǎn qiǎn,xiōng,kuài,tū,āo wā,chū,jī,dàng,hán,hán,záo,dāo,diāo,dāo,rèn,rèn,chuāng,fēn fèn,qiē qiè,yì,jī,kān,qiàn,cǔn,chú,wěn,jī,dǎn,xíng,huá huà,wán,jué,lí,yuè,liè,liú,zé,gāng,chuàng chuāng,fú,chū,qù,diāo,shān,mǐn,líng,zhōng,pàn,bié biè,jié,jié,páo bào,lì,shān,bié biè,chǎn chàn,jǐng,guā,gēng,dào,chuàng,kuī,kū,duò,èr,zhì,shuā shuà,quàn xuàn,chà shā,cì cī,kè,jié,guì,cì,guì,kǎi,duò,jì,tì,jǐng,dōu,luǒ,zé,yuān,cuò,xiāo xuē,kēi kè,là lá,qián,chà shā,chuàng,guǎ,jiàn,cuò,lí,tī,fèi,pōu,chǎn chàn,qí,chuàng,zì,gāng,wān,bāo bō,jī,duō,qíng,yǎn shàn,dū zhuó,jiàn,jì,bāo bō,yān,jù,huò,shèng,jiǎn,duó,zhì duān,wū,guǎ,fù pì,shèng,jiàn,gē,dá zhá,kǎi,chuàng chuāng,chuán,chǎn,tuán zhuān,lù jiū,lí,pēng,shān,piāo,kōu,jiǎo chāo,guā,qiāo,jué,huá huà,zhā zhá,zhuó,lián,jù,pī pǐ,liú,guì,jiǎo chāo,guì,jiàn,jiàn,tāng,huō,jì,jiàn,yì,jiàn,zhì,chán,zuān,mó,lí,zhú,lì,yà,quàn,bàn,gōng,jiā,wù,mài,liè,jìn jìng,kēng,xié liè,zhǐ,dòng,zhù chú,nǔ,jié,qú,shào,yì,zhǔ,miǎo,lì,jìn jìng,láo,láo,juàn,kǒu,yáng,wā,xiào,móu,kuāng,jié,liè,hé,shì,kè,jìn jìng,gào,bó bèi,mǐn,chì,láng,yǒng,yǒng,miǎn,kè,xūn,juàn juān,qíng,lù,bù,měng,chì,lè lēi,kài,miǎn,dòng,xù,xù,kān,wù,yì,xūn,wěng yǎng,shèng,láo,mù,lù,piāo,shì,jì,qín,jiàng,jiǎo chāo,quàn,xiàng,yì,qiāo,fān,juān,tóng dòng,jù,dān,xié,mài,xūn,xūn,lǜ,lì,chè,ráng xiāng,quàn,bāo,sháo,yún,jiū,bào,gōu gòu,wù,yún,none,xiōng,gài,gài,bāo,cōng,yì,xiōng,pēng,jū,táo yáo,gé,pú,è,páo,fú,gōng,dá,jiù,gōng,bǐ,huà huā,běi bèi,nǎo,chí shi,fāng,jiù,yí,zā,jiàng,kàng,jiàng,kuāng,hū,xiá,qū,fán,guǐ,qiè,zāng cáng,kuāng,fěi,hū,yǔ,guǐ,kuì guì,huì,dān,kuì guì,lián,lián,suǎn,dú,jiù,jué,xì,pǐ,qū ōu,yī,kē qià,yǎn yàn,biǎn,nì,qū ōu,shí,xùn,qiān,niàn,sà,zú,shēng,wǔ,huì,bàn,shì,xì,wàn,huá huà huā,xié,wàn,bēi,zú cù,zhuó,xié,dān shàn chán,mài,nán nā,dān,jí,bó,shuài lǜ,bǔ bo,guàn kuàng,biàn,bǔ,zhān zhàn,qiǎ kǎ,lú,yǒu,lǔ,xī,guà,wò,xiè,jié,jié,wèi,yǎng áng,qióng,zhī,mǎo,yìn,wēi,shào,jí,què,luǎn,chǐ,juàn juǎn,xiè,xù,jǐn,què,wù,jí,è,qīng,xī,sān,chǎng ān hàn,wēi yán,è,tīng,lì,zhé zhái,hàn àn,lì,yǎ,yā yà,yàn,shè,dǐ,zhǎ zhǎi,páng,none,qiè,yá,zhì shī,cè,máng,tí,lí,shè,hòu,tīng,zuī,cuò,fèi,yuán,cè,yuán,xiāng,yǎn,lì,jué,shà xià,diān,chú,jiù,jǐn,áo,guǐ,yàn,sī,lì,chǎng,qiān lán,lì,yán,yǎn,yuán,sī mǒu,gōng hóng,lín miǎo,róu qiú,qù,qù,none,lěi,dū,xiàn xuán,zhuān,sān,cān shēn cēn sān,cān shēn cēn sān,cān shēn cēn sān,cān shēn cēn sān,ài yǐ,dài,yòu,chā chá chǎ,jí,yǒu,shuāng,fǎn,shōu,guái,bá,fā fà,ruò,lì,shū,zhuó yǐ lì jué,qǔ,shòu,biàn,xù,jiǎ,pàn,sǒu,jí,wèi yù,sǒu,dié,ruì,cóng,kǒu,gǔ,jù gōu,lìng,guǎ,tāo dāo,kòu,zhī zhǐ,jiào,zhào shào,bā,dīng,kě kè,tái tāi,chì,shǐ,yòu,qiú,pǒ,yè xié,hào háo,sī,tàn,chǐ,lè,diāo,jī,none,hōng hóng,miē,xū yù,máng,chī,gè gě,xuān sòng,yāo,zǐ,hé gě,jí,diào,dòu cùn,tóng tòng,míng,hòu,lì,tǔ tù,xiàng,zhà zhā,xià hè,yē,lǚ,yā ā,ma má mǎ,ǒu,huō,yī,jūn,chǒu,lìn,tūn,yín,fèi,pǐ bǐ,qìn,qìn,jiè gè,bù,fǒu pǐ,bā ba,dūn,fēn,é huā,hán,tīng,háng kēng,shǔn,qǐ,hóng,zhī zī,yǐn shěn,wú,wú,chǎo chāo,nà nè,xuè chuò jué,xī,chuī,dōu rú,wěn,hǒu,hǒu hōng ōu,wú yù,gào,yā ya,jùn,lǚ,è,gé,wěn,dāi,qǐ,chéng,wú,gào,fū,jiào,hōng,chǐ,shēng,nà nè,tūn tiān,fǔ,yì,dāi,ǒu ōu òu,lì,bei bài,yuán yún yùn,wā guǎ guō,huá qì,qiāng qiàng,wū,è,shī,juǎn,pěn,wěn mǐn,ní ne,m,líng,rán,yōu,dǐ,zhōu,shì,zhòu,tiè chè,xì,yì,qì zhī,píng,zǐ cī,guā gū guǎ,zī cī,wèi,xǔ hǒu gòu,hē a kē,náo,xiā,pēi,yì,xiāo háo,shēn,hū,mìng,dá dàn,qū,jǔ zuǐ,xián gān,zā,tuō,duō,pǒu,páo,bì,fú,yǎng,hé hè,zǎ zé zhā,hé hè huó huò hú,hāi,jiù,yǒng,fù,dā,zhòu,wǎ,kǎ,gū,kā gā,zuo,bù,lóng,dōng,níng,tuō,sī,xiàn xián,huò,qì,èr,è,guāng,zhà,dié xī,yí,liě liē lié lie,zī,miē,mī,zhǐ,yǎo,jī xī qià,zhòu,kǎ luò gē,shù xún,zá zǎ,xiào,ké hāi,huī,kuā,huài shì,táo,xián,è àn,xuǎn xuān,xiū,wā guǎ guō,yān yàn yè,lǎo,yī,āi,pǐn,shěn,tóng,hōng hǒng hòng,xiōng,duō,wā wa,hā hǎ hà,zāi,yòu,diè dì,pài,xiǎng,āi,gén hěn,kuāng,yǎ yā,dā,xiāo,bì,yuě huì,nián,huá huā,xíng,kuài,duǒ,fēn,jì jiē zhāi,nóng,mōu,yō yo,hào,yuán yún yùn,lòng,pǒu,máng,gē,ó ò é,chī,shào,li lǐ lī,nǎ něi na né,zú,hè,kū,xiào,xiàn,láo,pò bā bō,zhé,zhā,liàng láng,bā,miē,liè lǜ,suī,fú,bǔ,hān,hēng,gěng,chuò yuè,gě jiā,yòu,yàn,gū,gū,bei bài,hán hàn,suō,chún,yì,āi ài,jiá qiǎn,tǔ tù,dàn xián yán,wǎn,lì,xī,táng,zuò,qiú,chē,wù wú ń,zào,yǎ,dōu,qǐ,dí,qìn,mà,none,gòng hǒng gǒng,dǒu,none,lào láo,liǎng,suǒ,zào,huàn,léng,shā,jī,zǔ,wō wěi,fěng,jìn yín,hǔ xià,qì,shòu,wéi,shuā,chàng,ér wā,lì,qiàng,ǎn,jiè zé jí,yō,niàn,yū,tiǎn,lài,shà,xī,tuò,hū,ái,zhōu zhāo tiào,gòu,kěn,zhuó,zhuó zhào,shāng,dí,hèng,lán lín,a ā á ǎ à,cǎi,qiāng,zhūn tūn xiāng duǐ,wǔ,wèn,cuì qi,shà jié dié tì,gǔ,qǐ,qǐ,táo,dàn,dàn,yuē wā,zǐ cǐ,bǐ tú,cuì,chuò chuài,hé,yǎ yā,qǐ,zhé,fēi,liǎng,xián,pí,shá,lā la,zé,qíng yīng,guà,pā,zé shì,sè,zhuàn,niè,guō,luō luó luo,yán,dī,quán,tān chǎn tuō,bo,dìng,lāng,xiào,none,táng,chì,tí,ān án,jiū,dàn,kā,yóng,wèi,nán,shàn,yù,zhé,lǎ,jiē,hóu,hǎn,dié zhá,zhōu,chái,wāi,nuò rě,huò guó xù,yīn,zá zǎ,yāo,ō wō,miǎn,hú,yǔn,chuǎn,huì,huàn,huàn yuán xuǎn hé,xǐ,hē hè yè,jī,kuì,zhǒng chuáng,wéi wèi,shà,xǔ,huáng,duó zhà,yán,xuān,liàng,yù,sāng sàng,chī,qiáo jiāo,yàn,dān shàn chán,pèn bēn,cān sūn qī,lí,yō yo,zhā chā,wēi,miāo,yíng,pēn pèn,bǔ,kuí,xí,yù,jiē,lóu lou,kù,zào qiāo,hù,tí,yáo,hè xiāo xiào hù,shà á,xiù,qiāng qiàng,sè,yōng,sù,gòng hǒng gǒng,xié,yì ài,suō,má mǎ ma,chā,hài,kē kè,tà dā,sǎng,chēn,rù,sōu,wā gǔ,jī,bēng pǎng,wū,xián qiàn qiè,shì,gé,zī,jiē,lào,wēng,wà,sì,chī,háo,suō,jiā lún,hāi hēi,suǒ,qín,niè,hē,zi,sǎi,ň,gě,ná,diǎ,ǎi ài āi,qiāng,tōng,bì,áo,áo,lián,zuī suī,zhē zhè zhù zhe,mò,sòu,sǒu,tǎn,dí,qī,jiào,chōng,jiào dǎo,kǎi gě,tàn,shān càn,cáo,jiā,ái,xiào,piāo,lóu lou,gā gá gǎ,gǔ,xiāo jiāo,hū,huì,guō,ǒu,xiān,zé,cháng,xū shī,pó,dē dēi,ma má,mà,hú,lei lē,dū,gā gá gǎ,tāng,yě,bēng,yīng,sāi,jiào,mì,xiào,huá huā,mǎi,rán,zuō,pēng,lào láo,xiào,jī,zhǔ,cháo zhāo,kuì,zuǐ,xiāo,sī,háo,fǔ ,liáo,qiáo qiào,xī,chù xù shòu,tān chǎn,dàn tán,hēi mò,xùn,ě,zūn,fān bo,chī,huī,zǎn,chuáng,cù zā hé,dàn,jué,tūn kuò,cēng,jiào,yē,xī,qì,háo,lián,xū shī,dēng,huī,yín,pū,juē,qín,xún,niè,lū,sī,yǎn,yīng,dā,zhān,ō,zhòu zhuó,jìn,nóng,yuě huì,xiè,qì,è,zào,yī,shì,jiào qiào chī,yuàn,ǎi ài āi,yōng yǒng,jué xué,kuài,yǔ,pēn pèn,dào,gá,xīn hěn hèn,dūn,dāng,xīn,sāi,pī,pǐ,yīn,zuǐ,níng,dí,làn,tà,huò ǒ,rú,hāo,hè xià,yàn,duō,xiù pì,zhōu chóu,jì jiē zhāi,jìn,háo,tì,cháng,xūn,mē,cā chā,tì,lū,huì,bó pào bào,yōu,niè,yín,hù,mèi me mò,hōng,zhé,lí,liú,xié hái,náng,xiāo,mō,yàn,lì,lú,lóng,pó,dàn,chèn,pín,pǐ,xiàng,huò,mè,xī,duǒ,kù,yán,chán,yīng,rǎng rāng,diǎn,lá,tà,xiāo,jiáo jué jiào,chuò,huàn huān,huò,zhuàn,niè,xiāo,zá cà,lí,chǎn,chài,lì,yì,luō luó luo,náng nāng,zá zàn cān,sū,xǐ,zèng,jiān,yàn zá niè,zhǔ,lán,niè,nāng,lǎn,luó luō luo,wéi guó,huí,yīn,qiú,sì,nín,jiǎn nān,huí,xìn,yīn,nān,tuán,tuán,dùn tún,kàng,yuān,jiǒng,piān,yún,cōng,hú,huí,yuán,é,guó,kùn,cōng,wéi tōng,tú,wéi,lún,guó,qūn,rì,líng,gù,guó,tāi,guó,tú,yòu,guó,yín,hùn,pǔ,yǔ,hán,yuán,lún,quān juàn juān,yǔ,qīng,guó,chuán chuí,wéi,yuán,quān juàn juān,kū,pǔ,yuán,yuán,yà,tuān,tú,tú,tuán,lüè,huì,yì,huán yuán,luán,luán,tǔ,yà,tǔ,tǐng,shèng,pú,lù,kuài,yā,zài,wéi xū,gē,yù zhūn,wū,guī,pǐ,yí,dì de,qiān sú,qiān,zhèn,zhuó,dàng,qià,xià,shān,kuàng,cháng chǎng,qí yín,niè,mò,jī,jiá,zhǐ,zhǐ zhì,bǎn,xūn,yì,qǐn,méi fén,jūn,rǒng kēng,tún dùn,fāng fáng,bèn fèn,bèn,tān,kǎn,huài pēi pī péi,zuò,kēng,bì,jǐng,dì làn,jīng,jì,kuài,dǐ,jīng,jiān,tán,lì,bà,wù,fén,zhuì,pō,pǎn bàn,táng,kūn,qū,tǎn,zhǐ,tuó,gān,píng,diàn,guà,ní,tái,pī,jiōng,yǎng,fó,ào,lù,qiū,mù mǔ,kē kě,gòu,xuè,fá,dǐ chí,chè,líng,zhù,fù,hū,zhì,chuí,lā,lǒng,lǒng,lú,ào,dài,páo,mín,xíng,dòng tóng,jì,hè,lǜ,cí,chǐ,lěi,gāi,yīn,hòu,duī,zhào,fú,guāng,yáo,duǒ duò,duǒ duò,guǐ,chá,yáng,yín,fá,gòu,yuán,dié,xié,kěn,shǎng,shǒu,è,bìng,diàn,hóng,yà,kuǎ,dá,kǎ,dàng,kǎi,háng,nǎo,ǎn,xīng,xiàn,yuàn huán,bāng,póu fú,bà,yì,yìn,hàn,xù,chuí,cén,gěng,āi,běng fēng,dì fáng,què jué,yǒng,jùn,xiá jiā,dì,mái mán,làng,juǎn,chéng,yán shān,qín jīn,zhé,liè,liè,pǔ bù,chéng,huā,bù,shí,xūn,guō,jiōng,yě,niàn,dī,yù,bù,yà,quán,suì sù,pí pì,qīng zhēng,wǎn wān,jù,lǔn,zhēng chéng,kōng,chǒng shǎng,dōng,dài,tán tàn,ǎn,cǎi cài,chù tòu,běng,xiàn kǎn,zhí,duǒ,yì shì,zhí,yì,péi,jī,zhǔn,qí,sào sǎo,jù,ní,kū,kè,táng,kūn,nì,jiān,duī,jīn,gāng,yù,è,péng bèng,gù,tù,lèng líng,fāng,yá,qiàn zàn jiàn,kūn,àn,shēn,duò huī,nǎo,tū,chéng,yīn,huán,bì,liàn,guō,dié,zhuàn,hòu,bǎo bǔ pù,bǎo,yú,dī,máo móu wǔ,jiē,ruán,è ài yè,gèng,kān,zōng,yú,huáng,è,yáo,yàn,bào,jí,méi,cháng chǎng,dǔ,tuó,yìn,féng,zhòng,jiè,jīn,fēng,gāng,chuǎn,jiǎn,píng,lěi,jiǎng,huāng,léng,duàn,wān,xuān,jì,jí,kuài,yíng,tā,chéng,yǒng,kǎi,sù,sù,shí,mì,tǎ,wěng,chéng,tú,táng,què,zhǒng,lì,péng,bàng,sāi sài sè,zàng,duī,tián,wù,zhèng,xūn,gé,zhèn,ài,gōng,yán,xiàn,tián zhèn,yuán,wēn,xiè,liù,hǎi,lǎng,cháng chǎng,péng,bèng,chén,lù,lǔ,ōu qiū,qiàn zàn jiàn,méi,mò,zhuān tuán,shuǎng,shú,lǒu,chí,màn,biāo,jìng,qī,shù,zhì dì,zhàng,kàn,yōng,diàn,chěn,zhǐ zhuó,xì,guō,qiǎng,jìn,dì,shāng,mù,cuī,yàn,tǎ,zēng,qián,qiáng,liáng,wèi,zhuì,qiāo,zēng,xū,shàn,shàn,fá,pú,kuài tuí,tuǎn dǒng,fán,qiáo què,mò,dūn,dūn,zūn dūn,dì,shèng,duò huī,duò,tán,dèng,wú,fén,huáng,tán,dā,yè,zhù,jiàn,ào,qiáng,jī,qiāo áo,kěn,yì tú,pí,bì,diàn,jiāng,yě,yōng,xué bó jué,tán,lǎn,jù,huài,dàng,rǎng,qiàn,xūn,xiàn làn,xǐ,hè,ài,yā yà,dǎo,háo,ruán,jìn,lěi,kuàng,lú,yán,tán,wéi,huài,lǒng,lǒng,ruǐ,lì,lín,rǎng,chán,xūn,yán,lěi,bà,wān,shì,rén,san,zhuàng,zhuàng,shēng,yī,mài,ké qiào,zhù,zhuàng,hú,hú,kǔn,yī,hú,xù,kǔn,shòu,mǎng,cún,shòu,yī,zhǐ zhōng,gǔ yíng,chǔ chù,jiàng xiáng,féng fēng páng,bèi,zhāi,biàn,suī,qūn,líng,fù,cuò,xià,xiòng xuàn,xiè,náo,xià,kuí,xī,wài,yuàn wǎn wān yuān,mǎo wǎn,sù,duō,duō,yè,qíng,wài,gòu,gòu,qì,mèng,mèng,yín,huǒ,chěn,dà dài tài,cè,tiān,tài,fū fú,guài,yāo,yāng,hāng bèn,gǎo,shī,tāo běn,tài,tóu tou,yǎn tāo,bǐ,yí,kuā kuà,jiā jiá gā xiá,duó,huà,kuǎng,yǔn,jiā jiá gā xiá,bā,ēn,lián,huàn,dī tì,yǎn yān,pào,juàn,qí jī,nài,fèng,xié,fèn,diǎn,quān juàn,kuí,zòu,huàn,qì qiè xiè,kāi,shē chǐ zhà,bēn bèn,yì,jiǎng,tào,zàng zhuǎng,běn,xī,huǎng,fěi,diāo,xùn zhuì,bēng,diàn,ào,shē,wěng,pò hǎ tǎi,ào yù,wù,ào yù,jiǎng,lián,duó,yūn,jiǎng,shì,fèn,huò,bì,luán,duǒ chě,nǚ rǔ,nú,dǐng dīng tiǎn,nǎi,qiān,jiān,tā jiě,jiǔ,nuán,chà,hǎo hào,xiān,fàn,jǐ,shuò,rú,fēi pèi,wàng,hóng,zhuāng,fù,mā,dān,rèn,fū yōu,jìng,yán,hài jiè,wèn,zhōng,pā,dù,jì,kēng háng,zhòng,yāo,jìn,yún,miào,fǒu pēi pī,chī,yuè jué,zhuāng,niū,yàn,nà nàn,xīn,fén,bǐ,yú,tuǒ,fēng,wàn yuán,fáng,wǔ,yù,guī,dù,bá,nī,zhóu,zhuó,zhāo,dá,nǐ nǎi,yuàn,tǒu,xián xuán xù,zhí yì,ē,mèi,mò,qī qì,bì,shēn,qiè,ē,hé,xǔ xū,fá,zhēng,mín,bàn,mǔ,fū fú,líng,zǐ,zǐ,shǐ,rǎn,shān shàn,yāng,mán,jiě,gū,sì,xìng,wěi wēi,zī,jù,shān shàn,pīn,rèn,yáo,dòng,jiāng,shū,jí,gāi,xiàng,huá huó,juān,jiāo xiáo,gòu dù,mǔ lǎo,jiān,jiān,yí,nián niàn,zhí,zhěn,jī,xiàn,héng,guāng,jūn xún,kuā hù,yàn,mǐng,liè,pèi,è yà,yòu,yán,chà,shēn xiān,yīn,shí,guǐ,quán,zī,sōng,wēi,hóng,wá,lóu,yà,ráo rǎo,jiāo,luán,pīng,xiàn,shào shāo,lǐ,chéng shèng,xiē,máng,fū,suō,wǔ mǔ,wěi,kè,chuò lài,chuò,tǐng,niáng,xíng,nán,yú,nà nuó,pōu bǐ,něi suī,juān,shēn,zhì,hán,dì,zhuāng,é,pín,tuì,mǎn,miǎn,wú wù yú,yán,wǔ,xī āi,yán,yú,sì,yú,wā,lì,xián,jū,qǔ,zhuì shuì,qī,xián,zhuó,dōng dòng,chāng,lù,ǎi ái è,ē ě,ē,lóu,mián,cóng,pǒu péi bù,jú,pó,cǎi,líng,wǎn,biǎo,xiāo,shū,qǐ,huī,fù fàn,wǒ,wǒ,tán,fēi,fēi,jié,tiān,ní nǐ,quán juàn,jìng,hūn,jīng,qiān jǐn,diàn,xìng,hù,wān wà,lái lài,bì,yīn,zhōu chōu,chuò nào,fù,jìng,lún,nüè,lán,hùn kūn,yín,yà,jū,lì,diǎn,xián,huā,huà,yīng,chán,shěn,tíng,dàng yáng,yǎo,wù,nàn,ruò chuò,jiǎ,tōu yú,xù,yù yú,wéi wěi,dì tí,róu,měi,dān,ruǎn nèn,qīn,huī,wò,qián,chūn,miáo,fù,jiě,duān,yí pèi,zhòng,méi,huáng,mián miǎn,ān,yīng,xuān,jiē,wēi,mèi,yuàn yuán,zhēng,qiū,tí,xiè,tuó duò,liàn,mào,rǎn,sī,piān,wèi,wā,cù,hú,ǎo,jié,bǎo,xū,tōu yú,guī,chú zòu,yáo,pì,xí,yuán,yìng,róng,rù,chī,liú,měi,pán,ǎo,mā,gòu,kuì,qín shēn,jià,sǎo,zhēn zhěn,yuán,jiē suǒ,róng,míng mǐng,yīng,jí,sù,niǎo,xián,tāo,páng,láng,nǎo,biáo,ài,pì,pín,yì,piáo piāo,yù,léi,xuán,màn,yī,zhāng,kāng,yōng,nì,lí,dí,guī,yān,jǐn jìn,zhuān,cháng,zé,hān nǎn,nèn,lào,mó,zhē,hù,hù,ào,nèn,qiáng,mā má,piè,gū,wǔ,qiáo,tuǒ,zhǎn,miáo,xián,xián,mò,liáo,lián,huà,guī,dēng,zhí,xū,yī,huà,xī,kuì,ráo rǎo,xī,yàn,chán,jiāo,měi,fàn,fān,xiān yǎn jìn,yì,huì,jiào,fù,shì,bì,shàn,suì,qiáng,liǎn,huán xuān qióng,xīn,niǎo,dǒng,yǐ,cān,ài,niáng,níng,mó,tiǎo,chóu,jìn,cí,yú,pín,róng,rú,nǎi,yān yàn,tái,yīng,qiàn,niǎo,yuè,yíng,mián,bí,mó,shěn,xìng,nì,dú,liǔ,yuān,lǎn,yàn,shuāng,líng,jiǎo,niáng,lǎn,xiān qiān,yīng,shuāng,xié huī,huān quán,mǐ,lí lì,luán,yǎn,zhú chuò,lǎn,zǐ,jié,jué,jué,kǒng,yùn,zī mā,zì,cún,sūn xùn,fú,bèi,zī,xiào,xìn,mèng,sì,tāi,bāo,jì,gū,nú,xué,yòu niū,zhuǎn,hái,luán,sūn xùn,nāo,miē,cóng,qiān,shú,chán càn,yā,zī,nǐ,fū,zī,lí,xué,bò,rú,nái,niè,niè,yīng,luán,mián,níng nìng zhù,rǒng,tā,guǐ,zhái,qióng,yǔ,shǒu,ān,tū jiā,sòng,wán,ròu,yǎo,hóng,yí,jǐng,zhūn,mì fú,zhǔ,dàng,hóng,zōng,guān,zhòu,dìng,wǎn yuān,yí,bǎo,shí,shí,chǒng,shěn,kè,xuān,shì,yòu,huàn,yí,tiǎo,shǐ,xiàn,gōng,chéng,qún,gōng,xiāo,zǎi,zhà,bǎo shí,hài,yàn,xiāo,jiā jia jie,shěn,chén,róng,huāng huǎng,mì,kòu,kuān,bīn,sù xiǔ xiù,cǎi cài,zǎn,jì,yuān,jì,yín,mì,kòu,qīng,hè,zhēn,jiàn,fù,níng nìng,bǐng bìng,huán,mèi,qǐn,hán,yù,shí,níng nìng,jìn qǐn,níng nìng,zhì,yǔ,bǎo,kuān,níng nìng,qǐn,mò,chá,jù lóu,guǎ,qǐn,hū,wù,liáo,shí,níng nìng,zhài,shěn,wěi,xiě xiè,kuān,huì,liáo,jùn,huán,yì,yí,bǎo,qīn qìn,chǒng,bǎo,fēng,cùn,duì,sì,xún,dǎo,lüè luó,duì,shòu,pǒ,fēng,zhuān,fū,shè yè yì,kēi kè,jiāng jiàng,jiāng jiàng,zhuān,wèi yù,zūn,xún,shù zhù,duì,dǎo,xiǎo,jié jí,shǎo shào,ěr,ěr,ěr,gǎ,jiān,shú,chén,shàng,shàng,mó,gá,cháng,liáo,xiǎn,xiǎn,hùn,yóu,wāng,yóu,liào,liào,yáo,lóng máng méng páng,wāng,wāng,wāng,gà,yáo,duò,kuì kuǐ,zhǒng,jiù,gān,gǔ,gān,tuí,gān,gān,shī,yǐn,chǐ chě,kāo,ní,jìn jǐn,wěi yǐ,niào suī,jú,pì,céng,xì,bī,jū,jiè,tián,qū,tì,jiè,wū,diǎo,shī,shǐ,píng bǐng,jī,xiè,zhěn,xì,ní,zhǎn,xī,wěi,mǎn,ē,lòu,pǐng bǐng,tì,fèi,shǔ zhǔ,xiè tì,tú,lǚ,lǚ,xǐ,céng,lǚ,jù,xiè,jù,juē,liáo,juē,shǔ zhǔ,xì,chè cǎo,tún zhūn,nì jǐ,shān,wā,xiān,lì,àn,huì,huì,hóng lóng,yì,qǐ,rèn,wù,hàn àn,shēn,yǔ,chū,suì,qǐ kǎi,none,yuè,bǎn,yǎo,áng,yá,wù,jié,è,jí,qiān,fén,wán,qí,cén,qián,qí,chà,jiè,qū,gǎng,xiàn,ào,lán,dǎo,bā,zuò,zuò,yǎng,jù,gāng,kě,gǒu,xuè,pō,lì,tiáo,jū jǔ,yán,fú,xiù,jiǎ,lǐng líng,tuó,pī,ào,dài,kuàng,yuè,qū,hù,pò,mín,àn,tiáo,lǐng líng,dī,píng,dōng,zhān,kuī,xiù,mǎo,tóng,xué,yì,biàn,hé,kè bā,luò,é,fù niè,xún,dié,lù,ěn,ér,gāi,quán,tóng dòng,yí,mǔ,shí,ān,wéi,huán,zhì shì,mì,lǐ,fǎ,tóng,wéi,yòu,qiǎ,xiá,lǐ,yáo,jiào qiáo,zhēng,luán,jiāo,é,é,yù,xié yé,bū,qiào,qún,fēng,fēng,náo,lǐ,yōu,xiàn,róng,dǎo,shēn,chéng,tú,gěng,jùn,gào,xiá,yín,wú,lǎng,kàn,láo,lái,xiǎn,què,kōng,chóng,chóng,tà,lín,huà,jū,lái,qí,mín,kūn,kūn,zú cuì,gù,cuī,yá,yá,gǎng gāng,lún,lún,líng léng,jué,duǒ,zhēng,guō,yín,dōng dòng,hán,zhēng,wěi,xiáo,pí bǐ,yān,sōng,jié,bēng,zú,jué,dōng,zhǎn chán,gù,yín,zī,zè,huáng,yú,wǎi wēi,yáng dàng,fēng,qiú,yáng,tí,yǐ,zhì shì,shì dié,zǎi,yǎo,è,zhù,kān zhàn,lǜ,yǎn,měi,hán,jī,jī,huàn,tíng,shèng,méi,qiàn kàn,wù máo,yú,zōng,lán,kě jié,yán,yán,wēi wěi,zōng,chá,suì,róng,kē,qīn,yú,qí,lǒu,tú,cuī,xī,wěng,cāng,dàng táng,róng yíng,jié,kǎi ái,liú,wù,sōng,kāo qiāo,zī,wéi,bēng,diān,cuó,qīn qiǎn,yǒng,niè,cuó,jǐ,shí,ruò,sǒng,zǒng,jiàng,liáo,kāng,chǎn,dié dì,cēn,dǐng,tū,lǒu,zhàng,zhǎn chán,zhǎn chán,áo ào,cáo,qū,qiāng,wěi,zuǐ,dǎo,dǎo,xí,yù,pǐ pèi,lóng,xiàng,céng,bō,qīn,jiāo,yān,láo,zhàn,lín,liáo,liáo,qín,dèng,tuò,zūn,jiào qiáo,jué guì,yáo,jiāo,yáo,jué,zhān shàn,yì,xué,náo,yè,yè,yí,niè,xiǎn,jí,xiè jiè,kě jié,guī xī juàn,dì,ào,zuì,wēi,yí,róng,dǎo,lǐng,jié,yǔ,yuè,yǐn,rū,jié,lì liè,guī xī juàn,lóng,lóng,diān,yíng hōng,xī,jú,chán,yǐng,kuī,yán,wēi,náo,quán,chǎo,cuán,luán,diān,diān,niè,yán,yán,yǎn,kuí,yǎn,chuān,kuài,chuān,zhōu,huāng,jīng xíng,xún,cháo,cháo,liè,gōng,zuǒ,qiǎo,jù,gǒng,none,wū,gū,gū,chà chā chāi cī,qiú,qiú,jǐ,yǐ,sì,bā,zhī,zhāo,xiàng hàng,yí,jǐn,xùn,juàn juǎn,bā,xùn,jīn,fú,zā,bì,shì,bù,dīng,shuài,fān,niè,shī,fēn,pà,zhǐ,xī,hù,dàn,wéi,zhàng,tǎng nú,dài,mò wà,pèi,pà,tiè tiě tiē,fú,lián,zhì,zhǒu,bó,zhì,dì,mò,yì,yì,píng,qià,juàn juǎn,rú,shuài,dài,zhēn,shuì,qiāo,zhēn,shī,qún,xí,bāng,dài,guī,chóu dào,píng,zhàng,jiǎn jiān sàn,wān,dài,wéi,cháng,shà qiè,qí jì,zé,guó,mào,zhǔ,hóu,zhēn,zhèng,mì,wéi,wò,fú,yì,bāng,píng,dié,gōng,pán,huǎng,tāo,mì,jià,téng,huī,zhōng,shān qiāo shēn,màn,mù,biāo,guó,zé,mù,bāng,zhàng,jǐng,chǎn chàn,fú,zhì,hū,fān,chuáng zhuàng,bì,bì,zhǎng,mì,qiāo,chān chàn,fén,méng,bāng,chóu dào,miè,chú,jié,xiǎn,lán,gān gàn,píng,nián,jiān,bìng bīng,bìng bīng,xìng,gàn,yāo,huàn,yòu,yōu,jī jǐ,guǎng ān,pǐ,tīng,zè,guǎng,zhuāng,mó mā me,qìng,bì,qín,dùn tún,chuáng,guǐ,yǎ,bài tīng,jiè,xù,lú,wǔ,zhuāng,kù,yīng yìng,dǐ de,páo,diàn,yā,miào,gēng,cì,fǔ,tóng,páng,fèi,xiáng,yǐ,zhì,tiāo,zhì,xiū,dù duó,zuò,xiāo,tú,guǐ,kù,máng méng páng,tíng,yóu,bū,bìng píng,chěng,lái,bēi,jī cuò,ān,shù,kāng,yōng,tuǒ,sōng,shù,qǐng,yù,yǔ,miào,sōu,cè,xiāng,fèi,jiù,è,guī wěi huì,liù,shà xià,lián,láng,sōu,zhì,bù,qǐng,jiù,jiù,jǐn qín,áo,kuò,lóu,yìn,liào,dài,lù,yì,chú,chán,tú,sī,xīn,miào,chǎng,wǔ,fèi,guǎng,kù,kuài,bì,qiáng sè,xiè,lǐn,lǐn,liáo,lú,jì,yǐng,xiān,tīng,yōng,lí,tīng,yǐn yìn,xún,yán,tíng,dí,pò pǎi,jiàn,huí,nǎi,huí,gǒng,niàn,kāi,biàn,yì,qì,nòng lòng,fèn,jǔ,yǎn,yì,zàng,bì,yì,yī,èr,sān,shì,èr,shì,shì,gōng,diào,yǐn,hù,fú,hóng,wū,tuí,chí,jiàng,bà,shěn,dì tì tuí,zhāng,jué zhāng,tāo,fǔ,dǐ,mí mǐ,xián,hú,chāo,nǔ,jìng,zhěn,yi,mǐ,juàn quān,wān,shāo,ruò,xuān yuān,jìng,diāo,zhāng,jiàng,qiáng qiǎng jiàng,péng,dàn tán,qiáng qiǎng jiàng,bì,bì,shè,dàn tán,jiǎn,gòu,gē,fā,bì,kōu,jiǎn,biè,xiāo,dàn tán,guō,qiáng qiǎng jiàng,hóng,mí mǐ,guō,wān,jué,jì xuě,jì,guī,dāng dàng,lù,lù,tuàn,huì,zhì,huì,huì,yí,yí,yí,yí,huò,huò,shān xiǎn,xíng,wén,tóng,yàn,yàn,yù,chī,cǎi,biāo,diāo,bīn,péng bāng,yǒng,piāo piào,zhāng,yǐng,chī,chì,zhuó bó,tuǒ yí,jí,páng fǎng,zhōng,yì,wǎng,chè,bǐ,dī,líng,fù,wǎng,zhēng,cú,wǎng,jìng,dài dāi,xī,xùn,hěn,yáng,huái,lǜ,hòu,wàng jiā wā,chěng zhèng,zhì,xú,jìng,tú,cóng,cóng,lài lái,cóng,dé děi de,pái,xǐ,dōng,jì,cháng,zhì,cóng zòng,zhōu,lái lài,yù,xiè,jiè,jiàn,shì tǐ,jiǎ xiá,biàn,huáng,fù,xún,wěi,páng,yáo,wēi,xī,zhēng,piào,tí chí,dé,zhǐ zhēng,zhǐ zhēng,bié,dé,zhǒng chōng,chè,jiǎo yáo,huì,jiǎo jiào,huī,méi,lòng lǒng,xiāng,bào,qú jù,xīn,xīn,bì,yì,lè,rén,dāo,dìng tìng,gǎi,jì,rěn,rén,chàn,tǎn,tè,tè tuī,gān hàn,yì qì,shì tài,cǔn,zhì,wàng,máng,xī liě,fān,yīng yìng,tiǎn,mǐn wěn mín,mǐn wěn mín,zhōng,chōng,wù,jí,wǔ,xì,jiá,yōu,wán,cōng,sōng zhōng,kuài,yù shū,biàn,zhì,qí shì,cuì,chén,tài,tún zhūn dùn,qián qín,niàn,hún,xiōng,niǔ,kuáng wǎng,xiān,xīn,kāng hàng,hū,kài xì,fèn,huái,tài,sǒng,wǔ,òu,chàng,chuàng,jù,yì,bǎo bào,chāo,mín mén,pēi,zuò zhà,zěn,yàng,kòu jù,bàn,nù,náo niú,zhēng,pà,bù,tiē zhān,hù gù,hù,cū jù zū,dá,lián,sī sāi,yóu chóu,dì,dài,yí,tū dié,yóu,fū,jí,pēng,xìng,yuàn,ní,guài,fú,xì,bì,yōu yào,qiè,xuàn,cōng,bǐng,huǎng,xù xuè,chù,bì pī,shù,xī shù,tān,yǒng,zǒng,duì,mì,zhǐ,yì,shì,nèn nín,xún,shì,xì,lǎo,héng,kuāng,móu,zhǐ,xié,liàn,tiāo yáo,huǎng,dié,hào,kǒng,guǐ,héng,xī qī xù,xiào jiǎo,shù,sī,hū kuā,qiū,yàng,huì,huí,chì,jiá,yí,xiōng,guài,lìn,huī,zì,xù,chǐ,shàng,nǜ,hèn,ēn,kè,dòng,tián,gōng,quán zhuān,xī,qià,yuè,pēng,kěn,dé,huì,è wù ě wū,qiū,tòng,yān,kǎi,cè,nǎo,yùn,máng,yǒng,yǒng,yuān juàn,pī pǐ,kǔn,qiǎo qiāo,yuè,yù shū,tú,jiè kè,xī,zhé,lìn,tì,hàn,hào jiào,qiè,tì,bù,yì,qiàn,huǐ,xī,bèi,mán mèn,yī yì,hēng hèng,sǒng,quān,chěng,kuī lǐ,wù,wù,yōu,lí,liàng,huàn,cōng,yì niàn,yuè,lì,nín,nǎo,è,què,xuán,qiān,wù,mǐn,cóng,fěi,bēi,dé,cuì,chàng,mèn mēn,lì,jì,guàn,guàn,xìng,dào,qī,kōng kǒng,tiǎn,lǔn lùn,xī,kǎn,gǔn,nì,qíng,chóu,dūn,guǒ,zhān,jīng,wǎn,yuān wǎn,jīn,jì,lán lín,yù xù,huò,hé hè,juàn quán,tán dàn,tì,tì,niàn,wǎng,chuò chuì,hū,hūn mèn,xī,chǎng,xīn,wéi,huì,è wù ě wū,suǒ ruǐ,zǒng,jiān,yǒng,diàn,jù,cǎn,chéng,dé,bèi,qiè,cán,dàn dá,guàn,duò,nǎo,yùn,xiǎng,zhuì,dié,huáng,chǔn,qióng,rě,xīng,cè,biǎn,mǐn,zōng,tí shì,qiǎo,chóu,bèi,xuān,wēi,gé,qiān,wěi,yù,yú tōu,bì,xuān,huàn,mǐn,bì,yì,miǎn,yǒng,qì kài,dàng shāng táng yáng,yīn,è,chén xìn dān,mào,kè qià,kè,yú,ài,qiè,yǎn,nuò,gǎn,yùn,còng sōng,sāi sī sǐ,lèng,fèn,yīng,kuì,kuì,què,gōng gòng hǒng,yún,sù,sù shuò,qí,yáo yào,sǒng,huàng,jí,gǔ,jù,chuàng,nì,xié,kǎi,zhěng,yǒng,cǎo,xùn,shèn,bó,kài xì,yuàn,xì xié,hùn,yǒng,yǎng,lì,cǎo sāo,tāo,yīn,cí,xù chù,qiàn qiè,tài,huāng,yùn,shèn,mǐng,gōng gòng hǒng,shè,cáo cóng,piāo,mù,mù,guó,chì,cǎn,cán,cán,cuī,mín,tè,zhāng,tòng,ào áo,shuǎng,màn,guàn,què,zào,jiù,huì,kǎi,lián liǎn,òu,sǒng,qín jìn jǐn,yìn,lǜ,shāng,wèi,tuán,mán,qiān,shè,yōng,qìng,kāng,dì chì,zhí zhé,lóu lǚ,juàn,qī,qī,yù,píng,liáo,còng,yōu,chōng,zhī zhì,tòng,chēng,qì,qū,péng,bèi,biē,qióng,jiāo,zēng,chì,lián,píng,kuì,huì,qiáo,chéng dèng zhèng,yìn,yìn,xǐ xī,xǐ,dàn dá,tán,duò,duì,duì dùn tūn,sù,jué,cè,xiāo jiāo,fān,fèn,láo,lào láo,chōng,hān,qì,xián xiàn,mǐn,jǐng,liǎo liáo,wǔ,cǎn,jué,cù,xiàn,tǎn,shéng,pī,yì,chù,xiān,náo nǎo náng,dàn,tǎn,jǐng jìng,sōng,hàn,jiǎo jǐ,wèi,xuān huān,dǒng,qín,qín,jù,cǎo sāo sào,kěn,xiè,yīng yìng,ào,mào,yì,lǐn,sè,jùn,huái,mèn,lǎn,ài,lǐn,yān,guō,xià,chì,yǔ yú,yìn,dāi,mèng méng měng,ài yì nǐ,méng měng,duì,qí jī jì,mǒ,lán xiàn,mèn,chóu,zhì,nuò,nuò,yān,yǎng,bó,zhì,kuàng,kuǎng,yōu yǒu,fū,liú liǔ,miè,chéng,huì,chàn,měng,lǎn,huái,xuán,ràng,chàn,jì,jù,huān,shè,yì,liàn,nǎn,mí mó,tǎng,jué,gàng zhuàng,gàng zhuàng,gàng zhuàng,gē,yuè,wù,jiān,xū,shù,róng,xì hū,chéng,wǒ,jiè,gē,jiān,qiāng,huò,qiāng qiàng,zhàn,dòng,qī,jiá,dié,zéi,jiá,jǐ,zhí,kān,jí,kuí,gài,děng,zhàn,qiāng qiàng,gē,jiǎn,jié,yù,jiǎn,yǎn,lù,xì hū,zhàn,xì hū,xì hū,chuō,dài,qú,hù,hù,hù,è,shì,tì,mǎo,hù,lì,fáng,suǒ,biǎn piān,diàn,jiōng,shǎng jiōng,yí,yǐ,shàn shān,hù,fēi,yǎn,shǒu,shǒu,cái,zā zhā zhá,qiú,lè lì cái,pū,bā pá,dǎ dá,rēng,fǎn fú,rù,zài,tuō,zhàng,diǎo dí yuē lì,káng gāng,yū wū,yū wū kū,hàn,shēn,chā,tuō chǐ yǐ,gǔ xì gē jié,kòu,wù,dèn,qiān,zhí,rèn,kuò,mén,sǎo sào,yáng,niǔ,bàn,chě,rǎo,xī chā qì,qián qín,bān,jiá,yú,fú,bā ào,xī zhé,pī,zhǐ,zhì sǔn kǎn,è,dèn,zhǎo,chéng,jì,yǎn,kuáng wǎng zài,biàn,chāo,jū,wěn,hú gǔ,yuè,jué,bǎ bà,qìn,dǎn shěn,zhěng,yǔn,wán,nè nì ruì nà,yì,shū,zhuā,póu,tóu,dǒu,kàng,zhē zhé shé,póu pōu fū,fǔ,pāo,bá,ǎo ào niù,zé,tuán,kōu,lūn lún,qiāng qiǎng chēng,yún,hù,bào,bǐng,zhǐ zhǎi,pēng,nán,bù pū,pī,tái,yǎo tāo,zhěn,zhā,yāng,bào,hē hè qiā,nǐ ní,yè,dǐ,chì,pī pēi,jiā,mǒ mò mā,mèi,chēn,yā,chōu,qū,mǐn,zhù,jiā yá,fú bì,zhǎ,zhǔ,dān dàn dǎn,chāi cā,mǔ,niān,lā lá,fǔ,pāo,bàn pàn,pāi,līn,ná,guǎi,qián,jù,tuò tà zhí,bá,tuō,tuō,ǎo ào niù,jū gōu,zhuō,pàn pīn fān,zhāo,bài,bài,dǐ,nǐ,jù,kuò,lǒng,jiǎn,qiǎ,yōng,lán,níng nǐng nìng,bō,zé zhái,qiān,hén,kuò guā,shì,jié jiá,zhěng,nǐn,gǒng,gǒng,quán,shuān,cún zùn,zā zǎn,kǎo,yí chǐ hài,xié,cè sè chuò,huī,pīn,zhuài zhuāi yè,shí shè,ná,bāi,chí,guà,zhì,kuò guāng,duò,duǒ duò,zhǐ,qiè,àn,nòng,zhèn,gé,jiào jiāo,kuà kū,dòng,rú ná,tiāo tiǎo,liè,zhā,lǚ,dié shè,wā,jué,liě,jǔ,zhì,luán,yà yǎ,zhuā wō,tà,xié jiā,náo,dǎng dàng,jiǎo,zhèng zhēng,jǐ,huī,xián,yǔ,āi ái,tuō shuì,nuó,cuò,bó,gěng,tǐ tì,zhèn,chéng,suō shā,suō shā,kēng qiān,měi,nòng,jú,bàng péng,jiǎn,yì,tǐng,shān,ruó,wǎn,xié jiā,chā,péng,jiǎo kù,wǔ,jùn,jiù,tǒng,kǔn,huò chì,tú shū chá,zhuō,póu pōu fū,luō lǚ,bā,hàn,shāo shào,niē,juān,zè,shù sǒng sōu,yé yú,jué zhuó,bǔ,wán,bù pú zhì,zùn,yè,zhāi,lǚ,sōu,tuō shuì,lāo,sǔn,bāng,jiǎn,huàn,dǎo,wěi,wàn wǎn wān yù,qín,pěng,shě,liè,mín,mén,fǔ fù bǔ,bǎi,jù jū,dáo,wǒ luò luǒ,ái,juǎn quán,yuè,zǒng,chēn,chuí,jié,tū,bèn,nà,niǎn niē,ruó wěi ré,zuó,wò xiá,qī,xiān,chéng,diān,sǎo sào,lūn lún,qìng qiàn,gāng,duō,shòu,diào,pǒu póu,dǐ,zhǎng,hùn,jǐ,tāo,qiā,qí,pái pǎi,shū,qiān wàn,líng,yè yē,yà yǎ,jué,zhēng zhèng,liǎng,guà,nǐ niè yì,huò xù,shàn yàn yǎn,zhěng dìng,lüè,cǎi,tàn,chè,bīng,jiē,tì,kòng,tuī,yǎn,cuò,zōu zhōu chōu,jū,tiàn,qián,kèn,bāi,pá,jiē,lǔ,guó,mìng,jié,zhì,dǎn shàn,mēng,chān xiān càn shǎn,sāo,guàn,pèng,yuàn,nuò,jiǎn,zhēng kēng,jiū yóu,jiǎn jiān,yú,yán,kuí,nǎn,hōng,róu,pì chè,wēi,sāi zǒng cāi,zòu,xuān,miáo,tí dī dǐ,niē,chā,shì,zǒng sōng,zhèn zhēn,yī,xún,huáng yóng,biǎn,yáng,huàn,yǎn,zǎn zuàn,ǎn,xū jū,yà,wò,ké qiā,chuǎi chuài chuāi tuán zhuī,jí,tì dì,là lá,là,chéng,kāi,jiū,jiū,tú,jiē qì,huī,gèn,chòng dǒng,xiāo,shé dié yè,xiē,yuán,qián jiàn jiǎn,yé,chā,zhā,bēi,yáo,wēi,bèng,lǎn,wèn,qìn,chān,gē gé,lǒu lōu,zǒng,gèn,jiǎo,gòu,qìn,róng,què,chōu zǒu,chuāi,zhǎn,sǔn,sūn,bó,chù,róng náng nǎng,bàng péng,cuō,sāo,kē è,yáo,dǎo,zhī,nù nuò nòu,lā xié xiàn,jiān,sōu,qiǔ,gǎo,xiǎn xiān,shuò,sǎng,jìn,miè,è,chuí,nuò,shān,tà,jié zhé,táng,pán bān pó,bān,dā,lì,tāo,hú,zhì nái,wā wǎ wà,huá,qiān,wèn,qiāng qiǎng chēng,tián shēn,zhēn,è,xié,ná nuò,quán,chá,zhà,gé,wǔ,èn,shè,gāng,shè niè,shū,bǎi,yáo,bìn,sōu,tān,sà shā shǎi,chǎn sùn,suō,jiū liú liáo jiǎo náo,chōng,chuāng,guó,bìng,féng pěng,shuāi,dì tú zhí,qì jì chá,sōu sǒng,zhāi,liǎn liàn,chēng,chī,guàn,lù,luò,lǒu lōu,zǒng,gài xì,hù chū,zhā,qiāng,tàng,huà,cuī,zhì nái,mó mā,jiāng qiàng,guī,yǐng,zhí,áo qiáo,zhì,niè chè,mán màn,chàn cán,kōu,chū,sè mí sù,tuán,jiǎo chāo,mō,mó,zhé,chān xiān càn shǎn,kēng qiān,biào biāo,jiàng,yáo,gòu,qiān,liào,jī,yīng,juē jué,piē,piē piě,lāo,dūn,xiàn,ruán,guì,zǎn zān zēn qián,yī,xián,chēng,chēng,sā sǎ,náo,hòng,sī,hàn,héng guàng,dā,zǔn,niǎn,lǐn,zhěng chéng,huī wéi,zhuàng,jiǎo,jǐ,cāo,dǎn,dǎn shàn,chè,bō,chě,juē,xiāo sōu,liāo liáo,bèn,fǔ,qiào,bō,cuō zuǒ,zhuó,zhuàn,wěi tuǒ,pū,qìn,dūn,niǎn,huá,xié,lū,jiǎo,cuān,tà,hàn,qiào yāo jī,zhuā wō,jiǎn,gǎn,yōng,léi lèi,nǎng,lǔ,shàn,zhuó,zé zhái,pǔ,chuò,jī,dǎng dàng,sè,cāo,qíng,qíng jǐng,huàn,jiē,qín,kuǎi,dān dàn,xié,qiā jiā yè,pǐ bò,bò bāi,ào,jù jū,yè,è,mēng,sòu sǒu,mí,jǐ,tái,zhuó,dǎo,xǐng,lǎn,cā,jǔ,yē,rǔ,yè,yè,nǐ,huò,jié,bìn,níng nǐng nìng,gē gé,zhì,zhì jié,kuò,mó,jiàn,xié,liè là,tān,bǎi,sòu sǒu,lū,lì luò yuè,rǎo,tī zhì zhāi,pān,yǎng,léi lèi,cā sǎ,shū,zǎn,niǎn,xiǎn,jùn pèi,huō,lì luò,là lài,huàn,yíng,lú luó,lǒng,qiān,qiān,zǎn cuán,qiān,lán,xiān jiān,yīng,méi,rǎng,chān,wěng,cuān,xié,shè niè,luó,jùn,mí mǐ mó,chī,zǎn cuán,luán,tān,zuàn,lì shài,diān,wā,dǎng,jiǎo,jué,lǎn,lì luǒ,nǎng,zhī,guì,guǐ guì,qī yǐ jī,xún,pū,pū,shōu,kǎo,yōu,gǎi,yǐ,gōng,gān hàn,bān,fàng,zhèng,pò,diān,kòu,mǐn,wù móu,gù,hé,cè,xiào,mǐ,chù shōu,gé guó è,dí,xù,jiào jiāo,mǐn,chén,jiù,shēn,duó duì,yǔ,chì,áo,bài,xù,jiào jiāo,duó duì,liǎn,niè,bì,chǎng,diǎn,duō què,yì,gǎn,sàn sǎn,kě,yàn,dūn duì,qī yǐ jī,tǒu,xiào xué,duō què,jiǎo,jìng,yáng,xiá,mǐn,shù shǔ shuò,ái zhú,qiāo,ái zhú,zhěng,dí,chén,fū,shù shǔ shuò,liáo,qū,xiòng xuàn,yǐ,jiǎo,shàn,jiǎo,zhuó zhú,yì dù,liǎn,bì,lí tái,xiào,xiào,wén,xué,qí,qí,zhāi,bīn,jué jiào,zhāi,láng,fěi fēi,bān,bān,lán,yǔ zhōng,lán,wěi mén,dǒu dòu,shēng,liào,jiǎ,hú,xié,jiǎ,yǔ,zhēn,jiào,wò guǎn,tǒu tiǎo,dòu,jīn,chì,yín zhì,fǔ,qiāng,zhǎn,qú,zhuó,zhǎn,duàn,zhuó,sī,xīn,zhuó,zhuó,qín,lín,zhuó,chù,duàn,zhú,fāng,chǎn jiè,háng,yú wū,shī,pèi,liú yóu,mèi,páng bàng,qí,zhān,máo mào,lǚ,pèi,pī bì,liú,fū,fǎng,xuán xuàn,jīng,jīng,nǐ,zú,zhào,yǐ,liú,shāo,jiàn,yú,yǐ,qí,zhì,fān,piāo,fān,zhān,kuài,suì,yú,wú,jì,jì,jì,huò,rì,dàn,jiù,zhǐ,zǎo,xié,tiāo,xún,xù,gā,lá,gàn hàn,hàn,tái yīng,dì dí de,xù xū,chǎn,shí,kuàng,yáng,shí,wàng,mín,mín,tūn zhùn,chūn,wù wǔ,yún,bèi,áng,zè,bǎn,jié,kūn,shēng,hù,fǎng,hào,guì,chāng,xuān,míng,hūn,fēn,qǐn,hū,yì,xī,xīn,yán,zè,fǎng,tán,shèn,jù,yáng,zǎn,bǐng,xīng,yìng,xuàn,pò,zhěn,líng,chūn,hào,mèi,zuó,mò,biàn,xù,hūn,zhāo,zòng,shì,shì,yù,fèi,dié yì,mǎo,nì,chǎng,wēn,dōng,ǎi,bǐng,áng,zhòu,lóng,xiǎn,kuàng,tiǎo,cháo,shí,huǎng huàng,huǎng,xuān,kuí,xù kuā,jiǎo,jìn,zhì,jìn,shǎng,tóng,hǒng,yàn,gāi,xiǎng,shài,xiǎo,yè,yùn yūn,huī,hán,hàn,jùn,wǎn,xiàn,kūn,zhòu,xī,shèng chéng,shèng,bū,zhé,zhé,wù,wǎn,huì,hào,chén,wǎn,tiǎn,zhuó,zuì,zhǒu,pǔ,jǐng yǐng,xī,shǎn,nǐ,xī,qíng,qǐ dù,jīng,guǐ,zhěng,yì,zhì,àn ǎn yǎn,wǎn,lín,liàng,chēng,wǎng wàng,xiǎo,zàn,fēi,xuān,xuǎn,yí,xiá,yùn yūn,huī,xǔ,mǐn mín,kuí,yē,yìng,shǔ dǔ,wěi,shǔ,qíng,mào,nán,jiǎn lán,nuǎn,àn,yáng,chūn,yáo,suǒ,pǔ,míng,jiǎo,kǎi,hào,wěng,chàng,qì,hào,yàn,lì,ài,jì,jì,mèn,zàn,xiè,hào,mù,mù,cōng,nì,zhāng,huì,bào pù,hàn,xuán,chuán,liáo,xiān,tǎn,jǐng,piē,lín,tūn,xī xǐ,yì,jì,huàng,dài,yè,yè,lì,tán,tóng,xiǎo,fèi,shěn,zhào,hào,yì,xiàng,xīng,shēn,jiǎo,bào,jìng,yàn,ài,yè,rú,shǔ,méng,xūn,yào,pù bào,lì,chén,kuàng,dié,liǎo,yàn,huò,lú,xī,róng,lóng,nǎng,luǒ,luán,shài,tǎng,yǎn,zhú,yuē,yuē,qū qǔ,yè,gēng gèng,yè,hū hù,hé,shū,cáo,cáo,shēng,màn,zēng céng,zēng céng,tì,zuì,cǎn qián jiàn,xù,huì kuài,yǐn,qiè hé,fēn,bì pí,yuè,yǒu yòu,ruǎn,péng,fén bān,fú fù,líng,fěi kū,qú xù chǔn,tì,nǜ gǎ,tiǎo,shuò,zhèn,lǎng,lǎng,juān zuī,míng,huāng máng wáng,wàng,tūn,zhāo cháo,jī,qī jī,yīng,zōng,wàng,tóng chuáng,lǎng,láo,méng,lóng,mù,pìn děng,wèi,mò,běn,zhá,shù shú zhú,shù shú zhú,none,zhū shú,rén,bā,pǔ pò pō piáo,duǒ,duǒ,dāo tiáo mù,lì,qiú guǐ,jī,jiū,bǐ,xiǔ,chéng chēng,cì,shā,rù,zá,quán,qiān,yú wū,gān gǎn,wū,chā chà,shā,xún,fán,wù,zǐ,lǐ,xìng,cái,cūn,rèn ér,sháo biāo,tuō zhé,dì duò,zhàng,máng,chì,yì,gū gài,gōng,dù,yí lì lí duò tuò,qǐ,shù,gàng gāng,tiáo tiāo,jié,mián,wàn,lái,jiǔ,máng,yáng,mà mǎ,miǎo,sì zhǐ xǐ,yuán wán,háng,fèi bèi,bēi,jié,dōng,gǎo,yǎo,xiān,chǔ,chūn,pá,shū duì,huà,xīn,niǔ chǒu,zhù,chǒu,sōng,bǎn,sōng,jí,wò yuè,jìn,gòu,jī,máo,pí,pī mì,wǎng,àng,fāng bìng,fén,yì,fú fū,nán,xī,hù dǐ,yā,dōu,xín,zhěn,yǎo yāo,lín,ruì,ě è,méi,zhào,guǒ,zhī qí,cōng zōng,yùn,huà,shēng,shū,zǎo,dì duò,lì,lú,jiǎn,chéng,sōng,qiāng,fēng,zhān,xiāo,xiān zhēn,kū,píng,sì tái,xǐ,zhǐ,guǎi,xiāo,jià,jiā,jǔ gǒu,bāo fú,mò,yì xiè,yè,yè,shì,niè,bǐ,tuó duò,yí duò lí,líng,bǐng,nǐ chì,lā,hé,pán bàn,fán,zhōng,dài,cí,yǎng yàng yāng yīng,fū fǔ fù,bǎi bó bò,mǒu,gān,qī,rǎn,róu,mào,sháo shào,sōng,zhè,xiá,yòu yóu,shēn,guì jǔ,tuò,zuò zhà,nán,níng,yǒng,dǐ chí,zhì dié,zhā zǔ zū,chá zhā,dàn,gū,bù pū,jiù,āo ào,fú,jiǎn,bā fú pèi bó biē,duò zuó wù,kē,nài,zhù,bì bié,liǔ,chái,shān,sì,zhù,bēi pēi,shì fèi,guǎi,chá zhā,yǎo,chēng,jiù,shì,zhī,liǔ,méi,lì,róng,zhà shān shi cè,zǎo,biāo,zhàn,zhì,lóng,dòng,lú,shēng,lì yuè,lán,yǒng,shù,xún,shuān,qì qiè,chén,qī xī,lì,yí,xiáng,zhèn,lì,sè,guā tiǎn,kān,bēn bīng,rěn,xiào jiào,bǎi,rěn,bìng,zī,chóu,yì xiè,cì,xǔ,zhū,jiàn zùn,zuì,ér,ěr,yǒu yù,fá,gǒng,kǎo,lǎo,zhān,liè,yīn,yàng,hé hú,gēn,zhī yì,shì,gé,zāi,luán,fú,jié,héng háng,guì,táo,guāng guàng,wéi,kuàng,rú,àn,ān,juàn,yí tí,zhuō,kū,zhì,qióng,tóng,sāng,sāng,huán,jié jú,jiù,xuè,duò,chuí,yú móu,zā zǎn,none,yīng,jié,liǔ,zhàn,yā,ráo náo,zhēn,dàng,qī,qiáo,huà,guì huì,jiǎng,zhuāng,xún,suō,shā,chén zhèn,bēi,tīng yíng,guā,jìng,bó,bèn fàn,fú,ruí,tǒng,jué,xī,láng,liǔ,fēng fèng,qī,wěn,jūn,gǎn,sù yìn,liáng,qiú,tǐng tìng,yǒu,méi,bāng,lòng,pēng,zhuāng,dì,xuān juān xié,tú chá,zào,āo yòu,gù,bì,dí,hán,zǐ,zhī,rèn ér,bèi,gěng,jiǎn,huàn,wǎn,nuó,jiā,tiáo tiāo,jì,xiāo,lǚ,kuǎn,shāo sào,chén,fēn,sōng,mèng,wú,lí,sì qǐ,dòu,qǐn,yǐng,suō,jū,tī,xiè,kǔn,zhuō,shū,chān yán,fàn,wěi,jìng,lí,bīn bīng,xià,fó,chóu táo dào,zhì,lái,lián liǎn,jiǎn,zhuō,líng,lí,qì,bǐng,lún,cōng sōng,qiàn,mián,qí,qí,cǎi,gùn hùn,chán,dé zhé,fěi,pái bèi pèi,bàng,bàng pǒu bèi bēi,hūn,zōng,chéng,zǎo,jí,lì liè,péng,yù,yù,gù,jùn,dòng,táng,gāng,wǎng,dì dài tì,què,fán,chēng,zhàn,qǐ,yuān,yǎn yàn,yù,quān juàn,yì,sēn,rěn shěn,chuí,léng lēng líng,qī,zhuō,fú sù,kē,lái,zōu sǒu,zōu,zhào zhuō,guān,fēn,fén,chēn shēn,qíng,ní nǐ,wǎn,guǒ,lù,háo,jiē qiè,yǐ yī,chóu zhòu diāo,jǔ,jú,chéng shèng,zú cuì,liáng,qiāng kōng,zhí,zhuī chuí,yā,jū,bēi,jiāo,zhuó,zī,bīn,péng,dìng,chǔ,chāng,mēn,huā,jiǎn,guī,xì,dú,qiàn,dào,guì,diǎn,luó,zhī,quān juàn quán,mìng,fǔ,gēng,pèng,shàn,yí,tuǒ,sēn,duǒ chuán,yē,fù,wěi huī,wēi,duàn,jiǎ jiā,zōng,jiān hán,yí,zhēn shèn,xí,yà,yǎn,chuán,jiān,chūn,yǔ,hé,zhā chá,wò,piān,bī,yāo,guō kuǎ,xū,ruò,yáng,là,yán,běn,huī,kuí,jiè,kuí,sī,fēng,xiē,tuǒ,jí zhì,jiàn,mù,máo,chǔ,kǔ hù,hú,liàn,léng,tíng,nán,yú,yóu yǒu,méi,sǒng cōng,xuàn yuán,xuàn,yǎng yàng yīng,zhēn,pián,dié yè,jí,jiē,yè,chǔ,shǔn dùn,yú,còu zòu,wēi,méi,dì dǐ shì,jí,jié,kǎi jiē,qiū,yíng,róu ròu,huáng,lóu,lè yuè,quán,xiāng,pǐn,shǐ,gài,tán,lǎn,wēn yùn,yú,chèn,lǘ,jǔ,shén,chū,bī pi,xiè,jiǎ,yì,zhǎn niǎn zhèn,fú fù bó,nuò,mì,láng,róng,gǔ,jiàn jìn,jǔ,tā,yǎo,zhēn,bǎng bàng,shā xiè,yuán,zǐ,míng,sù,jià,yáo,jié,huàng,gàn,fěi,zhà,qián,mà mā,sǔn,yuán,xiè,róng,shí,zhī,cuī,wēn,tíng,liú,róng,táng,què,zhāi,sì,shèng,tà,kē,xī,gù,qī,gǎo,gǎo,sūn,pán,tāo,gé,chūn,diān,nòu,jí,shuò,gòu,chuí,qiāng,chá,qiǎn lián xiàn,huái,méi,xù,gàng,gāo,zhuō,tuó,qiáo,yàng,diān zhěn zhēn,jiǎ,jiàn kǎn,zuì,dǎo,lóng,bīn bīng,zhū,sāng,xí dié,jī guī,lián liǎn,huì,róng yōng,qiàn,guǒ,gài,gài,tuán shuàn quán,huà,qì sè,sēn,cuī zhǐ,pèng,yǒu chǎo,hú,jiǎng,hù,huàn,guì,niè,yì,gāo,kāng,guī,guī,cáo,màn wàn,jǐn,dī,zhuāng,lè yuè yào lào,láng,chén,cōng zōng,lí chī,xiū,qíng,shǎng,fán,tōng,guàn,zé,sù,léi lěi,lǔ,liáng,mì,lóu,cháo jiǎo chāo,sù,kē,chū,táng,biāo,lù,jiū liáo,zhè,zhā,shū,zhāng,mán,mó mú,niǎo mù,yàng,tiáo,péng,zhù,shā xiè,xī,quán,héng hèng,jiān,cōng,jī,yān,qiáng,xuě,yīng,èr,xún,zhí,qiáo,zuī,cóng,pǔ,shù,huà,guì,zhēn,zūn,yuè,shàn,xī,chūn,diàn,fá fèi,gǎn,mó,wú,qiāo,ráo náo,lìn,liú,qiáo,xiàn,rùn,fǎn,zhǎn jiǎn,tuó,liáo,yún,shùn,tuí dūn,chēng,táng chēng,méng,jú,chéng,sù qiū,jué,jué,tán diàn,huì,jī,nuó,xiàng,tuǒ,níng,ruǐ,zhū,tóng chuáng,zēng céng,fén fèn fèi,qióng,rǎn yān,héng hèng,qián,gū,liǔ,lào,gāo,chú,xǐ,shèng,zǐ,zān,jǐ,dōu,jīng,lǔ,xiàn,cū chu,yuán,tà,shū qiāo,jiāng,tán,lǐn,nóng,yǐn,xí,huì,shān,zuì,xuán,chēng,gàn,jū,zuì,yì,qín,pǔ,yán,léi,fēng,huǐ,dàng,jì,suì,bò,píng bò,chéng,chǔ,zhuā,guì huì,jí,jiě,jiǎ,qíng,zhái shì tú,jiǎn,qiáng,dào,yǐ,biāo biǎo,sōng,shē,lǐn,lì,chá,méng,yín,chóu táo dǎo,tái,mián,qí,tuán,bīn bīng,huò,jì,qiān lián,nǐ mí,níng,yī,gǎo,jiàn kǎn,yǐn,nòu ruǎn rú,qǐng,yǎn,qí,mì,zhào,guì,chūn,jī jì,kuí,pó,dèng,chú,gé,mián,yōu,zhì,huǎng guǒ gǔ,qiān,lěi,léi lěi,sà,lǔ,lì,cuán,lǜ chū,miè mèi,huì,ōu,lǘ,zhì,gāo,dú,yuán,lì yuè,fèi,zhuó zhù,sǒu,lián liǎn,jiàng,chú,qìng,zhū,lú,yán,lì,zhū,chèn,jué jì,è,sū,huái guī,niè,yù,lóng,là lài,qiáo,xiǎn,guī,jǔ,xiāo,líng,yīng,jiān,yǐn,yòu yóu,yíng,xiāng,nóng,bó,chán zhàn,lán,jǔ,shuāng,shè,wéi zuì,cóng,quán,qú,cáng,jiù,yù,luó,lì,cuán,luán,dǎng,qú,yán,lǎn,lán,zhú,léi,lǐ,bà,náng,yù,líng,guàn,qiàn,cì,huān,xīn,yú,yù yì,qiān xiān,ōu,xū,chāo,chù qù xì,qì,kài ài,yì yīn,jué,xì kài,xù,hē,yù,kuài,láng,kuǎn,shuò sòu,xī,èi ǎi,qī,qī,xū chuā,chǐ chuài,qīn,kuǎn,kǎn qiàn,kuǎn,kǎn kè,chuǎn chuán,shà,guā,yān yīn,xīn,xiē,yú,qiàn,xiāo,yē,gē,wū,tàn,jìn qūn,ōu,hū,tì,huān,xū,pēn,xǐ,xiào,xū,xī shè,shàn,liǎn hān,chù,yì,è,yú,chuò,huān,zhǐ,zhèng zhēng,cǐ,bù,wǔ,qí,bù,bù,wāi,jù,qián,zhì chí,sè,chǐ,sè shà,zhǒng,suì,suì,lì,zé,yú,lì,guī,dǎi,è,sǐ,jiān,zhé,mò wěn,mò,yāo,mò,cú,yāng,tiǎn,shēng,dài,shāng,xù,xùn,shū,cán,jǐng,piǎo,qià,qiú,sù,qíng jìng,yǔn,liàn,yì,fǒu bó,zhí shi,yè yān yàn,cán,hūn mèi,dān,jí,dié,zhēn,yǔn,wēn,chòu,bìn,tì,jìn,shāng,yín,chī,jiù,kuì huì,cuàn,yì,dān,dù,jiāng,liàn,bìn,dú,jiān,jiān,shū,ōu,duàn,zhù,yīn yān yǐn,qìng kēng shēng,yì,shā,ké qiào,ké qiào,xiáo yáo xiào,xùn,diàn,huǐ,huǐ,gǔ,qiāo,jī,yì,ōu,huǐ,duàn,yī,xiāo,wú,guàn wān,mǔ,měi,měi,ǎi,jiě,dú dài,yù,bǐ,bì,bì,pí,pí,bì,chán,máo,háo,cǎi,bǐ,liě,jiā,zhān,sāi,mù,tuò,xún xùn,ěr,róng,xiǎn,jū,mú,háo,qiú,dòu nuò,shā,tǎn,péi,jū,duō,cuì,bī,sān,sān,mào,sāi suī,shū,shū,tuò,hé,jiàn,tà,sān,lǘ,mú,máo,tóng,rǒng,chǎng,pǔ,lǔ,zhān,sào,zhān,méng,lǔ,qú,dié,shì zhī,dī dǐ,mín,jué,méng máng,qì,piē,nǎi,qì,dāo,xiān,chuān,fēn,yáng rì,nèi,nèi,fú,shēn,dōng,qīng,qì,yīn,xī,hài,yǎng,ān,yà,kè,qīng,yà,dōng,dàn,lǜ,qíng,yǎng,yūn,yūn,shuǐ,shuǐ,zhěng chéng zhèng,bīng,yǒng,dàng,shuǐ,lè,nì,tǔn,fàn,guǐ jiǔ,tīng,zhī,qiú,bīn pà pā,zè,miǎn,cuān,huì,diāo,hàn,chà,zhuó què,chuàn,wán,fàn,tài dà,xī,tuō,máng,qiú,qì,shàn,pìn,hàn hán,qiān,wū,wū,xùn,sì,rǔ,gǒng,jiāng,chí,wū,tu,jiǔ,tāng shāng,zhī jì,zhǐ,qiān,mì,gǔ yù,wāng,jǐng,jǐng,ruì,jūn,hóng,tài,tài,jí,biàn,biàn,gàn hán cén,wèn mén,zhōng,fāng pāng,xiōng,jué,hǔ huǎng,niú yóu,qì,fén,xù,xù,qìn,yí,wò,yún,yuán,hàng,yǎn,shěn chén,chén,dàn,yóu,dùn,hù,huò,qī,mù,nǜ niǔ,méi mò,tà dá,miǎn,mì wù,chōng,hóng pāng,bǐ,shā shà,zhǐ,pèi,pàn,zhuǐ zǐ,zā,gōu,pài,méi mò,zé,fēng,òu ōu,lì,lún,cāng,fēng,wéi,hù,mò,mèi,shù,jǔ jù,zá,tuō duó,tuó,tuó duò,hé,lì,mǐ lì,yí chí,fā,fèi,yóu,tián,zhì,zhǎo,gū,zhān,yán,sī,kuàng,jiǒng,jū,xiè yì,qiú,yì dié,jiā,zhōng,quán,bó pō,huì,mì bì,bēn bèn,zé,chù shè,lè,yōu yòu āo,gū,hóng,gān,fǎ,mǎo,sì,hū,pēng píng,cǐ,fàn,zhī,sù,nìng,chēng,líng,pào pāo,bō,qì,sì,ní nì,jú,yuè sà,zhù,shēng,lèi,xuàn,jué xuè,fú,pàn,mǐn,tài,yāng,jǐ,yǒng,guàn,bèng,xué,lóng shuāng,lú,dàn,luò pō,xiè,pō,zé shì,jīng,yín,pán,jié,yè,huī,huí,zài,chéng,yīn,wéi,hòu,jiàn,yáng,liè,sì,jì,ér,xíng,fú fù,sǎ xǐ,sè qì zì,zhǐ,yìn,wú,xǐ xiǎn,kǎo kào,zhū,jiàng,luò,luò,àn yàn è,dòng,yí,sì,lěi lèi,yī,mǐ,quán,jīn,pò,wěi,xiáo,xiè,hóng,xù,sù shuò,kuāng,táo,qiè jié,jù,ěr,zhōu,rù,píng,xún,xiōng,zhì,guāng,huán,míng,huó,wā,qià,pài,wū,qū,liú,yì,jiā,jìng,qiǎn jiān,jiāng jiàng,jiāo,zhēn,shī,zhuó,cè,fá,kuài huì,jì jǐ,liú,chǎn,hún,hǔ xǔ,nóng,xún,jìn,liè,qiú,wěi,zhè,jùn xùn,hán,bāng,máng,zhuó,yōu dí,xī,bó,dòu,huàn,hóng,yì,pǔ,yǐng chéng yíng,lǎn,hào,làng,hǎn,lǐ,gēng,fú,wú,lì,chún,féng hóng,yì,yù,tóng,láo,hǎi,jìn,jiā,chōng,jiǒng jiōng,měi,suī něi,chēng,pèi,xiàn,shèn,tú,kùn,pīng,niè,hàn,jīng,xiāo,shè,niǎn,tū,yǒng chōng,xiào,xián,tǐng,é,sù,tūn yūn,juān,cén,tì,lì,shuì,sì,lèi,shuì,tāo,dú,lào,lái,lián,wéi,wō guō,yún,huàn,dí,hēng,rùn,jiàn,zhǎng zhàng,sè,fú,guān,xìng,shòu tāo,shuàn,yá,chuò,zhàng,yè,kōng náng,wǎn wò yuān,hán,tuō tuò,dōng,hé,wō,jū,shè,liáng liàng,hūn,tà,zhuō,diàn,qiè jí,dé,juàn,zī,xī,xiáo,qí,gǔ,guǒ guàn,yān,lín lìn,tǎng chǎng,zhōu,pěng,hào,chāng,shū,qī,fāng,zhí,lù,nào chuò zhuō,jú,táo,cóng,lèi,zhè,píng péng,féi,sōng,tiǎn,pì pèi,dàn,yù xù,ní,yū,lù,gàn,mì,jìng chēng,líng,lún,yín,cuì,qú,huái,yù,niǎn shěn,shēn,biāo hǔ,chún zhūn,hū,yuān,lái,hùn hún,qīng,yān,qiǎn,tiān,miǎo,zhǐ,yǐn,bó,bèn,yuān,wèn mín,ruò rè luò,fēi,qīng,yuān,kě,jì jǐ,shè,yuān,sè,lù,zì,dú dòu,yī,jiàn jiān,miǎn shéng,pài,xī,yú,yuān,shěn,shèn,róu,huàn,zhǔ,jiǎn,nuǎn nuán,yú,qiú wù,tíng tīng,qú jù,dù,fēng,zhā,bó,wò,wō guō,tí dī dì,wěi,wēn,rú,xiè,cè,wèi,hé,gǎng jiǎng,yān yǎn,hóng,xuàn,mǐ,kě,máo,yīng,yǎn,yóu,hōng qìng,miǎo,shěng,měi,zāi,hún,nài,guǐ,chì,è,pài,méi,liàn,qì,qì,méi,tián,còu,wéi,cān,tuān,miǎn,huì mǐn xū,pò,xǔ xū,jí,pén,jiān,jiǎn,hú,fèng,xiāng,yì,yìn,zhàn,shí,jiē,zhēn,huáng,tàn,yú,bì,mǐn hūn,shī,tū,shēng,yǒng,jú,dòng,tuàn nuǎn,qiū jiǎo,qiū jiǎo,qiú,yān yīn,tāng shāng,lóng,huò,yuán,nǎn,bàn pán,yǒu,quán,zhuāng hún,liàng,chán,xián,chún,niè,zī,wān,shī,mǎn,yíng,là,kuì huì,féng hóng,jiàn jiān,xù,lóu,wéi,gài,bō,yíng,pō,jìn,yàn guì,táng,yuán,suǒ,yuán,lián liǎn nián xián xiàn,yǎo,méng,zhǔn,chéng,kè,tài,dá tǎ,wā,liū liù,gōu,sāo,míng,zhà,shí,yì,lùn,mǎ,pǔ,wēi,lì,zāi,wù,xī,wēn,qiāng,zé,shī,sù,ái,zhēn qín,sōu,yún,xiù,yīn,róng,hùn,sù,suò,nì niào,tā,shī,rù,āi,pàn,chù xù,chú,pāng,wěng wēng,cāng,miè,gé,diān,hào xuè,huàng,qì xì xiē,zī,dí,zhì,xíng yíng,fǔ,jié,huá,gē,zǐ,tāo,téng,suī,bì,jiào,huì,gǔn,yín,zé hào,lóng,zhì,yàn,shè,mǎn,yíng,chún,lǜ,làn,luán,yáo,bīn,tān,yù,xiǔ,hù,bì,biāo,zhì,jiàng,kòu,shèn,shāng,dī,mì,áo,lǔ,hǔ xǔ,hū,yōu,chǎn,fàn,yōng,gǔn,mǎn,qǐng,yú,piāo piǎo piào,jì,yá,cháo,qī,xǐ,jì,lù,lóu,lóng,jǐn,guó,cóng sǒng,lòu,zhí,gài,qiáng,lí,yǎn,cáo,jiào,cōng,chún,tuán zhuān,òu ōu,téng,yě,xí,mì,táng,mò,shāng,hàn,lián,lǎn,wā,chí,gān,féng péng,xuán,yī,màn,zì,mǎng,kāng,luò tà,bēn pēng,shù,zhǎng zhàng,zhāng,chóng zhuàng,xù,huàn,huǒ huò kuò,jiàn jiān,yān,shuǎng,liáo liú,cuǐ cuī,tí,yàng,jiāng jiàng,cóng zǒng,yǐng,hóng,xiǔ,shù,guàn,yíng,xiāo,cóng zōng,kūn,xù,liàn,zhì,wéi,pì piē,yù,jiào qiáo,pō,dàng xiàng,huì,jié,wǔ,pá,jí,pān,wéi,sù,qián,qián,xī yà,lù,xì,xùn,dùn,huáng guāng,mǐn,rùn,sù,lǎo lào liáo,zhēn,cōng zòng,yì,zhí zhì,wān,tān shàn,tán,cháo,xún,kuì huì,yē,shào,tú zhā,zhū,sàn sǎ,hēi,bì,shān,chán,chán,shǔ,tóng,pū,lín,wéi,sè,sè,chéng,jiǒng,chéng dèng,huà,jiāo,lào,chè,gǎn,cūn cún,jǐng,sī,shù zhù,péng,hán,yún,liū liù,hòng gǒng,fú,hào,hé,xián,jiàn,shān,xì,ào yù,lǔ,lán,nìng,yú,lǐn,miǎn shéng,zǎo,dāng,huàn,zé shì,xiè,yù,lǐ,shì,xué,líng,wàn màn,zī,yōng yǒng,kuài huì,càn,liàn,diàn,yè,ào,huán,zhēn,chán,màn,gǎn,dàn tán,yì,suì,pì,jù,tà,qín,jī,zhuó,lián,nóng,guō wō,jìn,fén pēn,sè,jí shà,suī,huì huò,chǔ,tà,sōng,dǐng tìng,sè,zhǔ,lài,bīn,lián,mǐ nǐ,shī,shù,mì,nìng,yíng,yíng,méng,jìn,qí,bì pì,jì jǐ,háo,rú,cuì zuǐ,wò,tāo,yǐn,yīn,duì,cí,huò hù,qìng,làn,jùn xùn,ǎi kài kè,pú,zhuó zhào,wéi,bīn,gǔ,qián,yíng,bīn,kuò,fèi,cāng,mè,jiàn jiān,wěi duì,luò pō,zàn cuán,lǜ,lì,yōu,yǎng yàng,lǔ,sì,zhì,yíng,dú dòu,wǎng wāng,huī,xiè,pán,shěn,biāo,chán,miè mò,liú,jiān,pù bào,sè,chéng dèng,gǔ,bīn,huò,xiàn,lú,qìn,hàn,yíng,róng,lì,jìng,xiāo,yíng,suǐ,wěi duì,xiè,huái wāi,xuè,zhū,lóng shuāng,lài,duì,fàn,hú,lài,shū,lián,yíng,mí,jì,liàn,jiàn zùn,yīng yǐng yìng,fèn,lín,yì,jiān,yuè,chán,dài,ráng nǎng,jiǎn,lán,fán,shuàng,yuān,zhuó jiào zé,fēng,shè,lěi,lán,cóng,qú,yōng,qián,fǎ,guàn,jué,yàn,hào,yíng,sǎ,zàn cuán,luán luàn,yàn,lí,mǐ,shàn,tān,dǎng tǎng,jiǎo,chǎn,yíng,hào,bà,zhú,lǎn,lán,nǎng,wān,luán,xún quán quàn,xiǎn,yàn,gàn,yàn,yù,huǒ,huǒ biāo,miè,guāng,dēng,huī,xiāo,xiāo,huī,hōng,líng,zào,zhuàn,jiǔ,zhà yù,xiè,chì,zhuó,zāi,zāi,càn,yáng,qì,zhōng,fén bèn,niǔ,jiǒng guì,wén,pū,yì,lú,chuī,pī,kài,pàn,yán,yán,pàng fēng,mù,chǎo,liào,quē,kàng,dùn,guāng,xìn,zhì,guāng,guāng,wěi,qiàng,biān,dá,xiá,zhēng,zhú,kě,zhào zhāo,fú,bá,xiè,xiè,lìng,zhuō chù,xuàn,jù,tàn,páo bāo pào,jiǒng,páo fǒu,tái,tái,bǐng,yǎng,tōng,shǎn qián shān,zhù,zhà zhá,diǎn,wéi wèi,shí,liàn,chì,huǎng,zhōu,hū,shuò,làn,tīng,jiǎo yào,xù,héng,quǎn,liè,huàn,yáng yàng,xiāo,xiū,xiǎn,yín,wū,zhōu,yáo,shì,wēi,tóng dòng,miè,zāi,kài,hōng,lào luò,xiá,zhú,xuǎn,zhēng,pò,yān,huí huǐ,guāng,chè,huī,kǎo,jù,fán,shāo,yè,huì,none,tàng,jìn,rè,liè,xī,fú páo,jiǒng,xiè chè,pǔ,tīng,zhuó,tǐng,wán,hǎi,pēng,lǎng,yàn,xù,fēng,chì,róng,hú,xī,shū,hè,xūn hūn,kù,juān yè,xiāo,xī,yān,hàn,zhuàng,qū jùn,dì,xiè chè,jí qì,wù,yān,lǚ,hán,yàn,huàn,mèn,jú,dào,bèi,fén,lìn,kūn,hùn,tūn,xī,cuì,wú,hōng,chǎo jù,fǔ,wò ài,jiāo,zǒng cōng,fèng,píng,qióng,ruò,xī yì,qióng,xìn,zhuō chāo,yàn,yàn,yì,jué,yù,gàng,rán,pí,xiǒng yīng,gàng,shēng,chàng,shāo,xiǒng yīng,niǎn,gēng,qū,chén,hè,kuǐ,zhǒng,duàn,xiā,huī yùn xūn,fèng,liàn,xuān,xīng,huáng,jiǎo qiāo,jiān,bì,yīng,zhǔ,wěi,tuān,shǎn qián shān,xī yí,nuǎn,nuǎn,chán,yān,jiǒng,jiǒng,yù,mèi,shā shà,wèi,yè zhá,jìn,qióng,róu,méi,huàn,xù,zhào,wēi,fán,qiú,suì,yáng yàng,liè,zhǔ,jiē,zào,guā,bāo,hú,yūn yǔn,nǎn,shì,huǒ,biān,gòu,tuì,táng,chǎo,shān,ēn yūn,bó,huǎng,xié,xì,wù,xī,yūn yǔn,hé,hè xiāo,xī,yún,xióng,xióng,shǎn,qióng,yào,xūn xùn,mì,lián,yíng,wǔ,róng,gòng,yàn,qiàng,liū,xī,bì,biāo,cōng zǒng,lù āo,jiān,shú,yì,lóu,péng fēng,suī cuǐ,yì,tēng,jué,zōng,yù,hù,yí,zhì,āo áo,wèi,liǔ,hàn rǎn,ōu ǒu,rè,jiǒng,màn,kūn,shāng,cuàn,zèng,jiān,xī,xī,xī,yì,xiào,chì,huáng huǎng,chǎn dǎn chàn,yè,tán,rán,yàn,xún,qiāo,jùn,dēng,dùn,shēn,jiāo qiáo jué zhuó,fén,sī,liáo liǎo,yù,lín,tóng dòng,shāo,fén,fán,yàn yān,xún,làn,měi,tàng,yì,jiǒng,mèn,zhǔ,jiǎo,yíng,yù,yì,xué,lán,tài liè,zào,càn,suì,xī,què,zǒng,lián,huǐ,zhú,xiè,líng,wēi,yì,xié,zhào,huì,dá,nóng,lán,xū,xiǎn,hè,xūn,jìn,chóu,dào,yào,hè,làn,biāo,róng yíng,lì liè,mò,bào,ruò,lǜ,là liè,āo,xūn xùn,kuàng huǎng,shuò,liáo liǎo,lì,lú,jué,liáo liǎo,yàn xún,xī,xiè,lóng,yè,cān,rǎng,yuè,làn,cóng,jué,chóng,guàn,qú,chè,mí,tǎng,làn,zhú,lǎn làn,líng,cuàn,yù,zhǎo zhuǎ,zhǎo zhuǎ,pá,zhēng,páo,chēng chèn,yuán,ài,wéi wèi,han,jué,jué,fù fǔ,yé,bà,diē,yé,yáo,zǔ,shuǎng,ěr,pán,chuáng,kē,zāng,dié,qiāng,yōng,qiáng,piàn piān,bǎn,pàn,cháo,jiān,pái,dú,chuāng,yú,zhá,biān miàn,dié,bǎng,bó,chuāng,yǒu,yǒu yōng,dú,yá,chēng chèng,niú,niú,pìn,jiū lè,móu mù,tā,mǔ,láo,rèn,māng,fāng,máo,mù,gāng,wù,yàn,gē qiú,bèi,sì,jiàn,gǔ,yòu chōu,kē,shēng,mǔ,dǐ,qiān,quàn,quán,zì,tè,xī,máng,kēng,qiān,wǔ,gù,xī,lí,lí,pǒu,jī,gāng,zhí tè,bēn,quán,chún,dú,jù,jiā,jiān qián,fēng,piān,kē,jú,kào,chú,xì,bèi,luò,jiè,má,sān,wèi,máo lí,dūn,tóng,qiáo,jiàng,xī,lì,dú,liè,pái,piāo,bào,xī,chōu,wéi,kuí,chōu,quǎn,quǎn,quǎn bá,fàn,qiú,jǐ,chái,zhuó bào,hān àn,gē,zhuàng,guǎng,mǎ,yóu,kàng gǎng,pèi fèi,hǒu,yà,yín,huān fān,zhuàng,yǔn,kuáng,niǔ,dí,kuáng,zhòng,mù,bèi,pī,jú,yí quán chí,shēng xīng,páo,xiá,tuó yí,hú,líng,fèi,pī,nǐ,yǎo,yòu,gǒu,xuè,jū,dàn,bó,kǔ,xiǎn,níng,huán huān,hěn,jiǎo,hé mò,zhào,jié,xùn,shān,tà shì,róng,shòu,tóng dòng,lǎo,dú,xiá,shī,kuài,zhēng,yù,sūn,yú,bì,máng dòu,xī shǐ,juàn,lí,xiá,yín,suān,láng,bèi,zhì,yán,shā,lì,hàn,xiǎn,jīng,pái,fēi,xiāo,bài pí,qí,ní,biāo,yìn,lái,liè,jiān yàn,qiāng,kūn,yàn,guō,zòng,mí,chāng,yī yǐ,zhì,zhēng,yá wèi,měng,cāi,cù,shē,liè,diǎn,luó,hú,zōng,hú,wěi,fēng,wō,yuán,xīng,zhū,māo máo,wèi,chuàn chuān,xiàn,tuān tuàn,yà jiá qiè,náo,xiē hè gé hài,jiā,hóu,biān piàn,yóu,yóu,méi,chá,yáo,sūn,bó pò,míng,huá,yuán,sōu,mǎ,huán,dāi,yù,shī,háo,qiāng,yì,zhēn,cāng,háo gāo,màn,jìng,jiǎng,mò,zhāng,chán,áo,áo,háo,suǒ,fén fèn,jué,bì,bì,huáng,pú,lín lìn,xù,tóng,yào xiāo,liáo,shuò xī,xiāo,shòu,dūn,jiào,gé liè xiē,juàn,dú,huì,kuài,xiǎn,xiè,tǎ,xiǎn,xūn,níng,biān piàn,huò,nòu rú,méng,liè,náo nǎo yōu,guǎng,shòu,lú,tǎ,xiàn,mí,ráng,huān,náo yōu,luó,xiǎn,qí,jué,xuán,miào,zī,shuài lǜ,lú,yù,sù,wáng wàng,qiú,gǎ,dīng,lè,bā,jī,hóng,dì,chuàn,gān,jiǔ,yú,qǐ,yú,chàng yáng,mǎ,hóng,wǔ,fū,mín wén,jiè,yá,bīn fēn,biàn,bàng,yuè,jué,mén yǔn,jué,wán,jiān qián,méi,dǎn,pín,wěi,huán,xiàn,qiāng cāng,líng,dài,yì,án gān,píng,diàn,fú,xuán xián,xǐ,bō,cī cǐ,gǒu,jiǎ,sháo,pò,cí,kē,rǎn,shēng,shēn,yí tāi,zǔ jù,jiā,mín,shān,liǔ,bì,zhēn,zhēn,jué,fà,lóng,jīn,jiào,jiàn,lì,guāng,xiān,zhōu,gǒng,yān,xiù,yáng,xǔ,luò,sù,zhū,qín,yín kèn,xún,bǎo,ěr,xiàng,yáo,xiá,héng,guī,chōng,xù,bān,pèi,lǎo,dāng,yīng,hún huī,wén,é,chéng,dì tí,wǔ,wú,chéng,jùn,méi,bèi,tǐng,xiàn,chù,hán,xuán qióng,yán,qiú,xuàn,láng,lǐ,xiù,fú fū,liú,yá,xī,líng,lí,jīn,liǎn,suǒ,suǒ,fēng,wán,diàn,pín bǐng,zhǎn,cuì sè,mín,yù,jū,chēn,lái,mín,shèng,wéi yù,tiǎn tiàn,shū,zhuó zuó,běng pěi,chēng,hǔ,qí,è,kūn,chāng,qí,běng,wǎn,lù,cóng,guǎn,yǎn,diāo,bèi,lín,qín,pí,pá,què,zhuó,qín,fà,jīn,qióng,dǔ,jiè,hún huī,yǔ,mào,méi,chūn,xuān,tí,xīng,dài,róu,mín,jiān,wěi,ruǎn,huàn,xié jiē,chuān,jiǎn,zhuàn,chàng yáng,liàn,quán,xiá,duàn,yuàn,yé,nǎo,hú,yīng,yú,huáng,ruì,sè,liú,shī,róng,suǒ,yáo,wēn,wǔ,zhēn,jìn,yíng yǐng,mǎ,tāo,liú,táng,lì,láng,guī,tiàn tián zhèn,qiāng cāng,cuō,jué,zhǎo,yáo,ài,bīn pián,tú shū,cháng,kūn,zhuān,cōng,jǐn,yī,cuǐ,cōng,qí,lí,jǐng,zǎo suǒ,qiú,xuán,áo,liǎn,mén,zhāng,yín,yè,yīng,zhì,lù,wú,dēng,xiù,zēng,xún,qú,dàng,lín,liáo,qióng jué,sù,huáng,guī,pú,jǐng,fán,jīn,liú,jī,huì,jǐng,ài,bì,càn,qú,zǎo,dāng,jiǎo,guǎn,tǎn,huì kuài,huán,sè,suì,tián,chǔ,yú,jìn,lú fū,bīn pián,shú,wèn,zuǐ,lán,xǐ,jì zī,xuán,ruǎn,wò,gài,léi,dú,lì,zhì,róu,lí,zàn,qióng,tì,guī,suí,là,lóng,lú,lì,zàn,làn,yīng,mí xǐ,xiāng,qióng wěi wèi,guàn,dào,zàn,huán yè yà,guā,bó,dié,bó páo,hù,zhí hú,piáo,bàn,ráng,lì,wǎ wà,none,xiáng hóng,qián wǎ,bǎn,pén,fǎng,dǎn,wèng,ōu,none,none,wa,hú,líng,yí,píng,cí,none,juàn juān,cháng,chī,none,dàng,wā,bù,zhuì,píng,biān,zhòu,zhēn,none,cí,yīng,qì,xián,lǒu,dì,ōu,méng,zhuān,bèng,lìn,zèng,wǔ,pì,dān,wèng,yīng,yǎn,gān,dài,shèn shén,tián,tián,hán,cháng,shēng,qíng,shēn,chǎn,chǎn,ruí,shēng,sū,shēn,yòng,shuǎi,lù,fǔ,yǒng,béng,béng,níng nìng,tián,yóu,jiǎ,shēn,yóu zhá,diàn,fú,nán,diàn tián shèng,pīng,tǐng dīng,huà,tǐng dīng,zhèn,zāi zī,méng,bì,bì qí,mǔ,xún,liú,chàng,mǔ,yún,fàn,fú,gēng,tián,jiè,jiè,quǎn,wèi,fú bì,tián,mǔ,none,pàn,jiāng,wā,dá fú,nán,liú,běn,zhěn,xù chù,mǔ,mǔ,cè jì,zāi zī,gāi,bì,dá,zhì chóu shì,lüè,qí,lüè,fān pān,yī,fān pān,huà,shē yú,shē,mǔ,jùn,yì,liú,shē,dié,chóu,huà,dāng dàng dǎng,zhuì,jī,wǎn,jiāng jiàng,chéng,chàng,tuǎn,léi,jī,chā,liú,dié,tuǎn,lín lìn,jiāng,jiāng qiáng,chóu,pì,dié,dié,pǐ yǎ shū,jié qiè,dàn,shū,shū,zhì dì,yí nǐ,nè,nǎi,dīng,bǐ,jiē,liáo,gāng,gē yì,jiù,zhǒu,xià,shàn,xū,nüè yào,lì lài,yáng,chèn,yóu,bā,jiè,jué xuè,qí,yǎ xiā,cuì,bì,yì,lì,zòng,chuāng,fēng,zhù,pào,pí,gān,kē,cī,xuē,zhī,dǎn,zhěn,fá biǎn,zhǐ,téng,jū,jí,fèi féi,gōu,shān diàn,jiā,xuán,zhà,bìng,niè,zhèng zhēng,yōng,jìng,quán,téng chóng,tōng tóng,yí,jiē,wěi yòu yù,huí,tān shǐ,yǎng,zhì,zhì,hén,yǎ,mèi,dòu,jìng,xiāo,tòng,tū,máng,pǐ,xiāo,suān,pū pù,lì,zhì,cuó,duó,wù,shā,láo,shòu,huàn,xián,yì,bēng péng,zhàng,guǎn,tán,fèi féi,má,má lìn,chī,jì,tiǎn diàn,ān yè è,chì,bì,bì,mín,gù,duī,kē ē,wěi,yū,cuì,yǎ,zhú,cù,dàn dān,shèn,zhǒng,zhì chì,yù,hóu,fēng,là,yáng,chén,tú,yǔ,guō,wén,huàn,kù,jiǎ xiá xiā,yīn,yì,lòu,sào,jué,chì,xī,guān,yì,wēn,jí,chuāng,bān,huì lěi,liú,chài cuó,shòu,nüè yào,diān chēn,dá da,biē biě,tān,zhàng,biāo,shèn,cù,luǒ,yì,zòng,chōu,zhàng,zhài,sòu,sè,qué,diào,lòu,lòu,mò,qín,yǐn,yǐng,huáng,fú,liáo,lóng,qiáo jiào,liú,láo,xián,fèi,dàn dān,yìn,hè,ái,bān,xián,guān,guì wēi,nòng nóng,yù,wēi,yì,yōng,pǐ,lěi,lì lài,shǔ,dàn,lǐn,diàn,lǐn,lài,biē biě,jì,chī,yǎng,xuǎn,jiē,zhēng,mèng,lì,huò,lài,jī,diān,xuǎn,yǐng,yǐn,qú,yōng,tān,diān,luǒ,luán,luán,bō,bō bǒ,guǐ,bá,fā,dēng,fā,bái,bǎi,qié,jí bī,zào,zào,mào,de dí dì,pā bà,jiē,huáng,guī,cǐ,líng,gāo háo,mò,jí,jiǎo,pěng,gāo yáo,ái,é,hào,hàn,bì,wǎn,chóu,qiàn,xī,ái,xiǎo,hào,huàng,hào,zé,cuǐ,hào,xiǎo,yè,pó,hào,jiǎo,ài,xīng,huàng,lì luò bō,piǎo,hé,jiào,pí,gǎn,pào,zhòu,jūn,qiú,cūn,què,zhā,gǔ,jūn,jūn,zhòu,zhā cǔ,gǔ,zhāo zhǎn dǎn,dú,mǐn,qǐ,yíng,yú,bēi,diào,zhōng,pén,hé,yíng,hé,yì,bō,wǎn,hé,àng,zhǎn,yán,jiān jiàn,hé,yū,kuī,fàn,gài gě hé,dào,pán,fǔ,qiú,shèng chéng,dào,lù,zhǎn,méng,lí,jìn,xù,jiān jiàn,pán,guàn,ān,lú,xǔ,zhōu chóu,dàng,ān,gǔ,lì,mù,dīng,gàn,xū,máng,máng wàng,zhí,qì,yuǎn,xián tián,xiāng xiàng,dǔn,xīn,xì pǎn,pàn,fēng,dùn,mín,míng,shěng xǐng,shì,yún hùn,miǎn,pān,fǎng,miǎo,dān,méi,mào,kàn kān,xiàn,kōu,shì,yāng yǎng yìng,zhēng,yǎo āo ǎo,shēn,huò,dà,zhěn,kuàng,jū xū kōu,shèn,yí chì,shěng,mèi,mò miè,zhù,zhēn,zhēn,mián,shì,yuān,dié tì,nì,zì,zì,chǎo,zhǎ,xuàn,bǐng fǎng,pàng pán,lóng,guì suī,tóng,mī mí,dié zhì,dì,nè,míng,xuàn shùn xún,chī,kuàng,juàn,móu,zhèn,tiào,yáng,yǎn,mò,zhòng,mò,zhuó zháo zhāo zhe,zhēng,méi,suō,qiáo shào xiāo,hàn,huǎn,dì,chěng,cuó zhuài,juàn,é,miǎn,xiàn,xī,kùn,lài,jiǎn,shǎn,tiǎn,gùn,wān,lèng,shì,qióng,lì,yá,jīng,zhēng,lí,lài,suì zuì,juàn,shuì,huī suī,dū,bì,bì pì,mù,hūn,nì,lù,yì zé gāo,jié,cǎi,zhǒu,yú,hūn,mà,xià,xǐng xìng,huī,hùn,zāi,chǔn,jiān,mèi,dǔ,hóu,xuān,tí,kuí,gāo,ruì,mào,xù,fá,wò,miáo,chǒu,guì wèi kuì,mī mí,wěng,kòu jì,dàng,chēn,kē,sǒu,xiā,qióng huán,mò,míng,mán mén,fèn,zé,zhàng,yì,diāo dōu,kōu,mò,shùn,cōng,lóu lǘ lou,chī,mán mén,piǎo,chēng,guī,méng měng,wàn,rún shùn,piē,xī,qiáo,pú,zhǔ,dèng,shěn,shùn,liǎo liào,chè,xián jiàn,kàn,yè,xuè,tóng,wǔ mí,lín,guì kuì,jiàn,yè,ài,huì,zhān,jiǎn,gǔ,zhào,qú jù,wéi,chǒu,sào,nǐng chēng,xūn,yào,huò yuè,mēng,mián,pín,mián,lěi,kuàng guō,jué,xuān,mián,huò,lú,méng měng,lóng,guàn quán,mǎn mán,xǐ,chù,tǎng,kàn,zhǔ,máo,jīn qín guān,jīn qín guān,yù xù jué,shuò,zé,jué,shǐ,yǐ,shěn,zhī zhì,hóu hòu,shěn,yǐng,jǔ,zhōu,jiǎo jiáo,cuó,duǎn,ǎi,jiǎo jiáo,zēng,yuē,bà,shí dàn,dìng,qì,jī,zǐ,gān,wù,zhé,kū,gāng qiāng kòng,xī,fán,kuàng,dàng,mǎ,shā,dān,jué,lì,fū,mín,è,xū huā,kāng,zhǐ,qì qiè,kǎn,jiè,pīn bīn fēn,è,yà,pī,zhé,yán yàn,suì,zhuān,chē,dùn,wǎ,yàn,jīn,fēng,fǎ,mò,zhǎ,jū,yù,kē luǒ,tuó,tuó,dǐ,zhài,zhēn,ě,fú fèi,mǔ,zhù zhǔ,lì lā lá,biān,nǔ,pīng,pēng,líng,pào,lè,pò,bō,pò,shēn,zá,ài,lì,lóng,tóng,yòng,lì,kuàng,chǔ,kēng,quán,zhū,kuāng guāng,guī,è,náo,qià,lù,wěi guì,ài,luò gè,kèn xiàn gǔn yǐn,xíng,yán yàn,dòng,pēng píng,xī,lǎo,hóng,shuò shí,xiá,qiāo,qíng,wéi wèi ái,qiáo,yì,kēng,xiāo,què kè kù,chàn,láng,hōng,yù,xiāo,xiá,mǎng bàng,luò lòng,yǒng tóng,chē,chè,wò,liú,yìng,máng,què,yàn,shā,kǔn,yù,chì,huā,lǔ,chěn,jiǎn,nüè,sōng,zhuó,kēng kěng,péng,yān yǎn,zhuì chuí duǒ,kōng,chēng,qí,zòng cóng,qìng,lín,jūn,bō,dìng,mín,diāo,jiān zhàn,hè,lù liù,ài,suì,què xī,léng,bēi,yín,duì,wǔ,qí,lún lǔn lùn,wǎn,diǎn,náo gāng,bèi,qì,chěn,ruǎn,yán,dié,dìng,zhóu,tuó,jié yà,yīng,biǎn,kè,bì,wěi wèi,shuò shí,zhēn,duàn,xiá,dàng,tí dī,nǎo,pèng,jiǎn,dì,tàn,chá chā,tián,qì,dùn,fēng,xuàn,què,què qiāo,mǎ,gōng,niǎn,sù xiè,é,cí,liú liù,sī tí,táng,bàng páng,huá kě gū,pī,kuǐ wěi,sǎng,lěi,cuō,tián,xiá qià yà,xī,lián qiān,pán,wèi ái gài,yǔn,duī,zhé,kē,lá lā,zhuān,yáo,gǔn,zhuān,chán,qì,áo qiāo,pēng pèng,liù,lǔ,kàn,chuǎng,chěn,yīn yǐn,lěi léi,biāo,qì,mó mò,qì zhú,cuī,zōng,qìng,chuò,lún,jī,shàn,láo luò,qú,zēng,dèng,jiàn,xì,lín,dìng,diàn,huáng,pán bō,jí shé,qiāo,dī,lì,jiàn,jiāo,xī,zhǎng,qiáo,dūn,jiǎn,yù,zhuì,hé qiāo qiào,kè huò,zé,léi lěi,jié,chǔ,yè,què hú,dàng,yǐ,jiāng,pī,pī,yù,pīn,è qì,ài,kē,jiān,yù,ruǎn,méng,pào,cí,bō,yǎng,miè,cǎ,xián xín,kuàng,léi lěi lèi,lěi,zhì,lì,lì,fán,què,pào,yīng,lì,lóng,lóng,mò,bó,shuāng,guàn,jiān,cǎ,yán yǎn,shì,shì,lǐ,réng,shè,yuè,sì,qí,tā,mà,xiè,yāo,xiān,zhǐ qí,qí,zhǐ,bēng fāng,duì,zhòng,rèn,yī,shí,yòu,zhì,tiáo,fú,fù,mì bì,zǔ,zhī,suàn,mèi,zuò,qū,hù,zhù,shén,suì,cí,chái,mí,lǚ,yǔ,xiáng,wú,tiāo,piào piāo,zhù,guǐ,xiá,zhī,jì zhài,gào,zhēn,gào,shuì lèi,jìn,shèn,gāi,kǔn,dì,dǎo,huò,táo,qí,gù,guàn,zuì,líng,lù,bǐng,jīn jìn,dǎo,zhí,lù,chán shàn,bì pí,chǔ,huī,yǒu,xì,yīn,zī,huò,zhēn,fú,yuàn,xú,xiǎn,shāng yáng,tí zhǐ,yī,méi,sī,dì,bèi,zhuó,zhēn,yíng,jì,gào,táng,sī,mà,tà,fù,xuān,qí,yù,xǐ,jī jì,sì,shàn chán,dàn,guì,suì,lǐ,nóng,mí,dǎo,lì,ráng,yuè,tí,zàn,lèi,róu,yǔ,yú yù ǒu,lí,xiè,qín,hé,tū,xiù,sī,rén,tū,zǐ zì,chá ná,gǎn,yì zhí,xiān,bǐng,nián,qiū,qiū,zhǒng zhòng chóng,fèn,hào mào,yún,kē,miǎo,zhī,jīng,bǐ,zhǐ,yù,mì bì,kù kū,bàn,pī,ní nì,lì,yóu,zū,pī,bó,líng,mò,chèng,nián,qín,yāng,zuó,zhì,dī,shú,jù,zǐ,huó kuò,jī,chēng chèn chèng,tóng,shì zhì,huó kuò,huō,yīn,zī,zhì,jiē,rěn,dù,yí,zhū,huì,nóng,fù pū,xī,gǎo,láng,fū,xùn zè,shuì,lǚ,kǔn,gǎn,jīng,tí,chéng,tú shǔ,shāo shào,shuì,yà,lǔn,lù,gū,zuó,rěn,zhùn zhǔn,bàng,bài,jī qí,zhī,zhì,kǔn,léng lēng líng,péng,kē,bǐng,chóu,zuì zú sū,yù,sū,lüè,xiāng,yī,xì qiè,biǎn,jì,fú,pì bì,nuò,jiē,zhǒng zhòng,zōng zǒng,xǔ xū,chēng chèn chèng,dào,wěn,xián jiān liàn,zī jiū,yù,jì,xù,zhěn,zhì,dào,jià,jī qǐ,gǎo,gǎo,gǔ,róng,suì,ròng,jì,kāng,mù,cǎn shān cēn,mén méi,zhì,jì,lù,sū,jī,yǐng,wěn,qiū,sè,hè,yì,huáng,qiè,jǐ jì,suì,xiāo rào,pú,jiāo,zhuō bó,tóng zhǒng,zuō,lǔ,suì,nóng,sè,huì,ráng,nuò,yǔ,pīn,jì,tuí,wěn,chēng chèn chèng,huò,kuàng,lǚ,biāo pāo,sè,ráng,zhuō jué,lí,cuán zàn,xué,wā,jiū,qióng,xī,qióng,kōng kòng kǒng,yū yǔ,shēn,jǐng,yào,chuān,zhūn,tū,láo,qiè,zhǎi,yǎo,biǎn,báo,yǎo,bìng,wā,zhú kū,jiào liáo liù,qiào,diào,wū,wā guī,yáo,zhì,chuāng,yào,tiǎo yáo,jiào,chuāng,jiǒng,xiāo,chéng,kòu,cuàn,wō,dàn,kū,kē,zhuó,huò,sū,guān,kuī,dòu,zhuō,yìn xūn,wō,wā,yà yē,yú,jù,qióng,yáo,yáo,tiǎo,cháo,yǔ,tián diān yǎn,diào,jù,liào,xī,wù,kuī,chuāng,chāo kē,kuǎn cuàn,kuǎn cuàn,lóng,chēng chèng,cuì,liáo,zào,cuàn,qiào,qióng,dòu,zào,lǒng,qiè,lì,chù,shí,fù,qiān,chù qì,hóng,qí,háo,shēng,fēn,shù,miào,qǔ kǒu,zhàn,zhù,líng,lóng,bìng,jìng,jìng,zhāng,bǎi,sì,jùn,hóng,tóng,sǒng,jìng zhěn,diào,yì,shù,jìng,qǔ,jié,píng,duān,lí,zhuǎn,céng zēng,dēng,cūn,wāi,jìng,kǎn kàn,jìng,zhú,zhú dǔ,lè jīn,péng,yú,chí,gān,máng,zhú,wán,dǔ,jī,jiǎo jiào,bā,suàn,jí,qǐn,zhào,sǔn,yá,zhuì ruì,yuán,hù,háng hàng,xiào,cén jìn hán,pí bì,bǐ,jiǎn,yǐ,dōng,shān,shēng,dā xiá nà,dí,zhú,nà,chī,gū,lì,qiè,mǐn,bāo,tiáo,sì,fú,cè,bèn,fá,dá,zǐ,dì,líng,zuó zé,nú,fú fèi,gǒu,fán,jiā,gě,fàn,shǐ,mǎo,pǒ,tì,jiān,qióng,lóng lǒng,mǐn,biān,luò,guì,qū,chí,yīn,yào,xiǎn,bǐ,qióng,kuò,děng,jiǎo jiào,jīn,quán,sǔn,rú,fá,kuāng,zhù zhú,tǒng,jī,dá dā,háng,cè,zhòng,kòu,lái,bì,shāi,dāng,zhēng,cè,fū,yún jūn,tú,pá,lí,láng làng,jǔ,guǎn,jiǎn,hán,tǒng,xiá,zhì zhǐ,chéng,suàn,shì,zhù,zuó,xiǎo,shāo,tíng,cè,yán,gào,kuài,gān,chóu,kuāng,gàng,yún,o,qiān,xiǎo,jiǎn,póu bù fú pú,lái,zōu,pái bēi,bì,bì,gè,tái chí,guǎi dài,yū,jiān,zhào dào,gū,chí,zhēng,qìng jīng,shà,zhǒu,lù,bó,jī,lín lǐn,suàn,jùn qūn,fú,zhá,gū,kōng,qián,quān,jùn,chuí,guǎn,wǎn yuān,cè,zú,pǒ,zé,qiè,tuò,luó,dān,xiāo,ruò,jiàn,xuān,biān,sǔn,xiāng,xiǎn,píng,zhēn,xīng,hú,shī yí,zhù,yuē yào chuò,chūn,lǜ,wū,dǒng,shuò xiāo qiào,jí,jié,huáng,xīng,mèi,fàn,chuán,zhuàn,piān,fēng,zhù zhú,hóng,qiè,hóu,qiū,miǎo,qiàn,gū,kuì,yì,lǒu,yún,hé,táng,yuè,chōu,gāo,fěi,ruò,zhēng,gōu,niè,qiàn,xiǎo,cuàn,gōng gǎn lǒng,péng páng,dǔ,lì,bì,zhuó huò,chú,shāi,chí,zhù,qiāng cāng,lóng lǒng,lán,jiǎn jiān,bù,lí,huì,bì,zhú dí,cōng,yān,péng,cēn zān cǎn,zhuàn zuàn suǎn,pí,piǎo biāo,dōu,yù,miè,tuán zhuān,zé,shāi,guó guì,yí,hù,chǎn,kòu,cù,píng,zào,jī,guǐ,sù,lǒu,cè jí,lù,niǎn,suō,cuàn,diāo,suō,lè,duàn,zhù,xiāo,bó,mì miè,shāi sī,dàng,liáo,dān,diàn,fǔ,jiǎn,mǐn,kuì,dài,jiāo,dēng,huáng,sǔn zhuàn,láo,zān,xiāo,lù,shì,zān,qí,pái,qí,pái,gǎn gàn,jù,lù,lù,yán,bò bǒ,dāng,sài,zhuā,gōu,qiān,lián,bù bó,zhòu,lài,shi,lán,kuì,yú,yuè,háo,zhēn jiān,tái,tì,niè,chóu,jí,yí,qí,téng,zhuàn,zhòu,fān pān biān,sǒu shǔ,zhòu,qiān,zhuó,téng,lù,lú,jiǎn jiān,tuò,yíng,yù,lài,lóng lǒng,qiè,lián,lán,qiān,yuè,zhōng,qú,lián,biān,duàn,zuǎn,lí,shāi,luó,yíng,yuè,zhuó,yù,mǐ,dí,fán,shēn,zhé,shēn,nǚ,hé,lèi,xiān,zǐ,ní,cùn,zhàng,qiān,zhāi,bǐ,bǎn,wù,shā chǎo,kāng jīng,róu,fěn,bì,cuì,yǐn,zhé,mǐ,tà,hù,bā,lì,gān,jù,pò,yù,cū,zhān,zhòu,chī,sù,tiào,lì,xī,sù,hóng,tóng,zī cí,cè sè,yuè,zhōu yù,lín,zhuāng,bǎi,lāo,fèn,ér,qū,hé,liáng,xiàn,fū fú,liáng,càn,jīng,lǐ,yuè,lù,jú,qí,cuì,bài,zhāng,lín,zòng,jīng,guǒ,huā,sǎn shēn,shēn,táng,biān biǎn,róu,miàn,hóu,xǔ,zòng,hū hú hù,jiàn,zān,cí,lí,xiè,fū,nuò,bèi,gǔ gòu,xiǔ,gāo,táng,qiǔ,jiā,cāo,zhuāng,táng,mí méi,sǎn shēn,fèn,zāo,kāng,jiàng,mó,sǎn shēn,sǎn,nuò,xī,liáng,jiàng,kuài,bó,huán,shǔ,zòng,xiàn,nuò,tuán,niè,lì,zuò,dí,niè,tiào,làn,mì sī,sī,jiū jiǔ,xì jì,gōng,zhēng zhěng,jiū,gōng,jì,chà chǎ,zhòu,xún,yuē yāo,hóng gōng,yū,hé gē,wán,rèn,wěn,wén wèn,qiú,nà,zī,tǒu,niǔ,fóu,jì jié jiè,shū,chún,pī pí bǐ,zhèn,shā,hóng,zhǐ,jí,fēn,yún,rèn,dǎn,jīn jìn,sù,fǎng,suǒ,cuì,jiǔ,zhā zā,hā,jǐn,fū fù,zhì,qī,zǐ,chōu chóu,hóng,zhā zā,léi lěi lèi,xì,fú,xiè,shēn,bō bì,zhù,qū qǔ,líng,zhù,shào,gàn,yǎng,fú,tuó,zhěn tiǎn,dài,chù,shī,zhōng,xián,zǔ,jiōng jiǒng,bàn,qú,mò,shù,zuì,kuàng,jīng,rèn,háng,xiè,jié jiē,zhū,chóu,guà kuā,bǎi mò,jué,kuàng,hú,cì,huán gēng,gēng,tāo,xié jié,kù,jiǎo,quán shuān,gǎi ǎi,luò lào,xuàn,bēng bīng pēng,xiàn,fú,gěi jǐ,tōng tóng dòng,róng,tiào diào dào,yīn,lěi lèi léi,xiè,juàn,xù,gāi hài,dié,tǒng,sī,jiàng,xiáng,huì,jué,zhí,jiǎn,juàn,chī zhǐ,miǎn wèn mán wàn,zhèn,lǚ,chéng,qiú,shū,bǎng,tǒng,xiāo,huán huàn wàn,qīn xiān,gěng,xū,tí tì,xiù,xié,hóng,xì,fú,tīng,suí,duì,kǔn,fū,jīng,hù,zhī,yán xiàn,jiǒng,féng,jì,xù,rěn,zōng zèng,lín chēn,duǒ,lì liè,lǜ,jīng,chóu,quǎn,shào,qí,qí,zhǔn zhùn,jī qí,wǎn,qiàn qīng zhēng,xiàn,shòu,wéi,qìng qǐ,táo,wǎn,gāng,wǎng,bēng běng bèng,zhuì,cǎi,guǒ,cuì,lún guān,liǔ,qǐ,zhàn,bì,chuò chāo,líng,mián,qī,jī,tián tǎn chān,zōng,gǔn,zōu,xī,zī,xìng,liǎng,jǐn,fēi,ruí,mín,yù,zǒng,fán,lǜ lù,xù,yīng,shàng,zī,xù,xiāng,jiān,kè,xiàn,ruǎn ruàn,mián,jī qī,duàn,chóng zhòng,dì,mín,miáo máo,yuán,xiè yè,bǎo,sī,qiū,biān,huǎn,gēng gèng,zǒng,miǎn,wèi,fù,wěi,tōu xū shū,gōu,miǎo,xié,liàn,zōng zòng,biàn pián,gǔn yùn,yīn,tí,guā wō,zhì,yùn yūn wēn,chēng,chán,dài,xié,yuán,zǒng,xū,shéng,wēi,gēng gèng,xuān,yíng,jìn,yì,zhuì,nì,bāng bàng,gǔ hú,pán,zhòu,jiān,cī cuò suǒ,quán,shuǎng,yùn yūn wēn,xiá,cuī suī shuāi,xì,róng rǒng ròng,tāo,fù,yún,zhěn,gǎo,rù,hú,zài zēng,téng,xiàn xuán,sù,zhěn,zòng,tāo,huǎng,cài,bì,féng fèng,cù,lí,suō sù,yǎn yǐn,xǐ,zòng zǒng,léi,zhuàn juàn,qiàn,màn,zhí,lǚ,mù mò,piǎo piāo,lián,mí,xuàn,zǒng,jì,shān,suì,fán pó,lǜ,bēng běng bèng,yī,sāo,móu miù miào mù liǎo,yáo yóu zhòu,qiǎng,shéng,xiān,jì,zōng zòng,xiù,rán,xuàn,suì,qiāo,zēng zèng,zuǒ,zhī zhì,shàn,sǎn,lín,jú jué,fān,liáo,chuō chuò,zūn zǔn,jiàn,rào,chǎn chán,ruǐ,xiù,huì huí,huà,zuǎn,xī,qiǎng,wén,da,shéng,huì,xì jì,sè,jiǎn,jiāng,huán,qiāo sāo,cōng,xiè,jiǎo zhuó,bì,dàn tán chán,yì,nǒng,suì,yì,shā,rú,jì,bīn,qiǎn,lán,pú fú,xūn,zuǎn,zī,péng,yào lì,mò,lèi,xiè,zuǎn,kuàng,yōu,xù,léi,xiān,chán,jiǎo,lú,chán,yīng,cái,xiāng rǎng,xiān,zuī,zuǎn,luò,lí xǐ lǐ sǎ,dào,lǎn,léi,liàn,sī,jiū,yū,hóng gōng,zhòu,xiān qiàn,hé gē,yuē yāo,jí,wán,kuàng,jì jǐ,rèn,wěi,yún,hóng,chún,pī pí bǐ,shā,gāng,nà,rèn,zòng zǒng,lún guān,fēn,zhǐ,wén wèn,fǎng,zhù,zhèn,niǔ,shū,xiàn,gàn,xiè,fú,liàn,zǔ,shēn,xì,zhī zhì,zhōng,zhòu,bàn,fú,chù,shào,yì,jīng,dài,bǎng,róng,jié jiē,kù,rào,dié,háng,huì,gěi jǐ,xuàn,jiàng,luò lào,jué,jiǎo,tǒng,gěng,xiāo,juàn,xiù,xì,suí,tāo,jì,tí tì,jì,xù,líng,yīng,xù,qǐ,fēi,chuò chāo,shàng,gǔn,shéng,wéi,mián,shòu,bēng běng bèng,chóu,táo,liǔ,quǎn,zōng zèng,zhàn,wǎn,lǜ lù,zhuì,zī,kè,xiāng,jiān,miǎn,lǎn,tí,miǎo,jī qī,yùn yūn wēn,huì huí,sī,duǒ,duàn,biàn pián,xiàn,gōu,zhuì,huǎn,dì,lǚ,biān,mín,yuán,jìn,fù,rù,zhěn,féng fèng,cuī suī shuāi,gǎo,chán,lí,yì,jiān,bīn,piǎo piāo,màn,léi,yīng,suō sù,móu miù miào mù liǎo,sāo,xié,liáo,shàn,zēng zèng,jiāng,qiǎn,qiāo sāo,huán,jiǎo zhuó,zuǎn,fǒu,xiè,gāng,fǒu,quē,fǒu,quē,bō,píng,xiàng,zhào,gāng,yīng,yīng,qìng,xià,guàn,zūn,tán,chēng,qì,wèng,yīng,léi,tán,lú,guàn,wǎng,wǎng,wǎng,wǎng,hǎn,wǎng,luó,fú,shēn,fá,gū,zhǔ,jū,máo,gǔ,mín,gāng,bà ba pí,guà,tí,juàn,fú,shēn,yǎn,zhào,zuì,guǎi guà,zhuó,yù,zhì,ǎn,fá,lǎn,shǔ,sī,pí,mà,liǔ,bà ba pí,fá,lí,cháo,wèi,bì,jì,zēng,chōng,liǔ,jī,juàn,mì,zhào,luó,pí,jī,jī,luán,yáng xiáng,mǐ,qiāng,dá,měi,yáng xiáng,líng,yǒu,fén,bā,gāo,yàng,gǔ,qiāng,zāng,měi gāo,líng,yì xī,zhù,dī,xiū,qiǎng,yí,xiàn,róng,qún,qún,qiǎng,huán,suō,xiàn,yì,yōu,qiāng kòng,qián xián yán,yú,gēng,jié,tāng,yuán,xī,fán,shān,fén,shān,liǎn,léi,gēng,nóu,qiàng,chàn,yǔ,hóng gòng,yì,chōng,wēng,fēn,hóng,chì,chì,cuì,fú,xiá,běn,yì,là,yì,pī bì pō,líng,liù,zhì,qú yù,xí,xié,xiáng,xī,xī,ké,qiáo qiào,huì,huī,xiāo,shà,hóng,jiāng,dí zhái,cuì,fěi,dào zhōu,shà,chì,zhù,jiǎn,xuān,chì,piān,zōng,wán,huī,hóu,hé,hè,hàn,áo,piāo,yì,lián,hóu qú,áo,lín,pěn,qiáo qiào,áo,fān,yì,huì,xuān,dào,yào,lǎo,lǎo,kǎo,mào,zhě,qí shì,gǒu,gǒu,gǒu,dié,dié,ér,shuǎ,ruǎn nuò,ér nài,nài,duān zhuān,lěi,tīng,zǐ,gēng,chào,hào,yún,bà pá,pī,sì chí,sì,qù chú,jiā,jù,huō,chú,lào,lún lǔn,jí jiè,tǎng,ǒu,lóu,nòu,jiǎng,pǎng,zhá zé,lóu,jī,lào,huò,yōu,mò,huái,ěr,yì,dīng,yé yē,dā,sǒng,qín,yún yíng,chǐ,dān,dān,hóng,gěng,zhí,pàn,niè,dān,zhěn,chè,líng,zhēng,yǒu,wà tuǐ zhuó,liáo,lóng,zhí,níng,tiāo,ér nǜ,yà,tiē zhé,guō,xù,lián,hào,shèng,liè,pìn,jīng,jù,bǐ,dǐ zhì,guó,wén,xù,pīng,cōng,dìng,ní,tíng,jǔ,cōng,kuī,lián,kuì,cōng,lián,wēng,kuì,lián,lián,cōng,áo,shēng,sǒng,tīng,kuì,niè,zhí,dān,níng,qié,nǐ jiàn,tīng,tīng,lóng,yù,yù,zhào,sì,sù,yì,sù,sì,zhào,zhào,ròu,yì,lèi lē,jī,qiú,kěn,cào,gē,bó dí,huàn,huāng,chǐ,rèn,xiāo xiào,rǔ,zhǒu,yuān,dù dǔ,gāng,róng chēn,gān,chāi,wò,cháng,gǔ,zhī,qín hán hàn,fū,féi,bān,pēi,pàn,jiān,fáng,zhūn chún,yóu,nà,āng,kěn,rán,gōng,yù,wěn,yáo,qí,pí bǐ bì,qiǎn,xī,xī,fèi,kěn,jǐng,tài,shèn,zhǒng,zhàng,xié,shèn,wèi,zhòu,dié,dǎn,fèi bì,bá,bó,qú,tián,bèi bēi,guā,tāi,zǐ fèi,fěi kū,zhī,nì,píng pēng,zì,fū fú zhǒu,pàn,zhēn,xián,zuò,pēi,jiǎ,shèng,zhī,bāo,mǔ,qū,hú,qià,chǐ,yìn,xū,yāng,lóng,dòng,kǎ,lú,jìng,nǔ,yān,pāng,kuà,yí,guāng,hǎi,gē gé,dòng,chī,jiāo,xiōng,xiōng,ér,àn,héng,pián,néng nài,zì,guī kuì,zhēng,tiǎo,zhī,cuì,méi,xié,cuì,xié,mài,mài mò,jǐ,xié,nín,kuài,sà,zàng,qí,nǎo,mǐ,nóng,luán,wàn,bó,wěn,wǎn,xiū,jiǎo,jìng,róu,hēng,cuǒ,liè,shān,tǐng,méi,chún,shèn,jiá,none,juān,cù,xiū,xìn,tuō,pāo,chéng,něi,fǔ,dòu,tuō,niào,nǎo,pǐ,gǔ,luó,lì,liǎn,zhàng,cuī,jiē,liǎng,shuí,pí,biāo,lún,pián,guò,juàn,chuí,dàn,tiǎn,něi,jīng,nái,là xī,yè,ā yān,rèn,shèn,zhuì,fǔ,fǔ,jū,féi,qiāng,wàn,dòng,pí,guó,zōng,dìng,wò,méi,ruǎn,zhuàn,chì,còu,luó,ǒu,dì,ān,xīng,nǎo,shù,shuàn,nǎn,yùn,zhǒng,róu,è,sāi,tú,yāo,jiàn,wěi,jiǎo,yú,jiā,duàn,bì,cháng,fù,xiàn,nì,miǎn,wà,téng,tuǐ,bǎng,qiǎn,lǚ,wà,shòu,táng,sù,zhuì,gé,yì,bó,liáo,jí,pí,xié,gāo gào,lǚ,bìn,ōu,cháng,lù biāo,guó,pāng,chuái,biāo,jiǎng,fū,táng,mó,xī,zhuān chuán chún zhuǎn,lǜ,jiāo,yìng,lǘ,zhì,xuě,cūn,lìn,tóng,péng,nì,chuài,liáo,cuì,kuì,xiāo,tēng,fán pán,zhí,jiāo,shàn,hū wǔ,cuì,rùn,xiāng,suǐ,fèn,yīng,shān dàn,zhuā,dǎn,kuài,nóng,tún,lián,bì bei,yōng,jué,chù,yì,juǎn,là gé,liǎn,sāo sào,tún,gǔ,qí,cuì,bìn,xūn,nào,wò yuè,zàng,xiàn,biāo,xìng,kuān,là,yān,lú,huò,zā,luǒ,qú,zàng,luán,ní luán,zā,chén,qiān xián,wò,guàng jiǒng,zāng zàng cáng,lín,guǎng jiǒng,zì,jiǎo,niè,chòu xiù,jì,gāo,chòu,mián biān,niè,zhì,zhì,gé,jiàn,dié zhí,zhī jìn,xiū,tái,zhēn,jiù,xiàn,yú,chā,yǎo,yú,chōng,xì,xì,jiù,yú,yǔ,xīng,jǔ,jiù,xìn,shé,shè,shè,jiǔ,shì,tān,shū,shì,tiǎn,tàn,pù,pù,guǎn,huà,tiàn,chuǎn,shùn,xiá,wǔ,zhōu,dāo,chuán,shān,yǐ,fán,pā,tài,fán,bǎn,chuán,háng,fǎng,bān,bǐ,lú,zhōng,jiàn,cāng,líng,zhú,zé,duò,bó,xián,gě,chuán,xiá,lú,qióng,páng,xī,kuā,fú,zào,féng,lí,shāo,yú,láng,tǐng,yù,wěi,bó,měng,niàn,jū,huáng,shǒu,kè,biàn,mù,dié,dào,bàng,chā,yì,sōu,cāng,cáo,lóu,dài,xuě,yào,chōng,dēng,dāng,qiáng,lǔ,yǐ,jí,jiàn,huò,méng,qí,lǔ,lú,chán,shuāng,gèn,liáng,jiān,jiān,sè,yàn,fú,pīng,yàn,yàn,cǎo,ǎo,yì,lè,dǐng,jiāo qiú,ài,nǎi,tiáo,qiú,jié jiē,péng,wán,yì,chā,mián,mǐ,gǎn,qiān,yù,yù,sháo,xiōng,dù,hù xià,qǐ,máng,zì zǐ,huì hū,suī,zhì,xiāng,bì pí,fú,tún chūn,wěi,wú,zhī,qì,shān,wén,qiàn,rén,fú,kōu,jiè gài,lú,xù zhù,jī,qín,qí,yuán yán,fēn,bā,ruì,xīn xìn,jì,huā,lún huā,fāng,wù hū,jué,gōu gǒu,zhǐ,yún,qín,ǎo,chú,máo mào,yá,fèi fú,rèng,háng,cōng,chán yín,yǒu,biàn,yì,qiē,wěi,lì,pǐ,è,xiàn,cháng,cāng,zhù,sū sù,dì tí,yuàn,rǎn,líng,tái tāi,tiáo sháo,dí,miáo,qǐng,lì jī,yòng,kē hē,mù,bèi,bāo,gǒu,mín,yǐ,yǐ,jù qǔ,piě,ruò rě,kǔ,zhù níng,nǐ,pā bó,bǐng,shān shàn,xiú,yǎo,xiān,běn,hóng,yīng,zuó zhǎ,dōng,jū chá,dié,nié,gān,hū,píng pēng,méi,fú,shēng ruí,gū,bì,wèi,fú,zhuó,mào,fàn,qié,máo,máo,bá,zǐ,mò,zī,zhǐ,chí,jì,jīng,lóng,cōng,niǎo,yuán,xué,yíng,qióng,gè,míng,lì,róng,yìn,gèn,qiàn,chǎi,chén,yù,hāo,zì,liè,wú,jì,guī,cì,jiǎn,cí,hòu,guāng,máng,chá,jiāo,jiāo,fú,yú,zhū,zī,jiāng,huí,yīn,chá,fá,róng,rú,chōng,mǎng,tóng,zhòng,qiān,zhú,xún,huán,fū,quán,gāi,dá,jīng,xìng,chuǎn,cǎo,jīng,ér,àn,qiáo,chí,rěn,jiàn,yí tí,huāng,píng,lì,jīn,lǎo,shù,zhuāng,dá,jiá,ráo,bì,cè,qiáo,huì,jì,dàng,zì,róng,hūn,xíng yīng,luò,yíng,qián xún,jìn,sūn,yīn yìn,mǎi,hóng,zhòu,yào,dù,wěi,lí,dòu,fū,rěn,yín,hé,bí,bù,yǔn,dí,tú,suī,suī,chéng,chén,wú,bié,xī,gěng,lì,pú,zhù,mò,lì,zhuāng,zuó,tuō,qiú,suō shā,suō,chén,péng fēng,jǔ,méi,méng,xìng,jìng,chē,shēn xīn,jūn,yán,tíng,yóu,cuò,guān guǎn wǎn,hàn,yǒu,cuò,jiá,wáng,sù yóu,niǔ,shāo xiāo,xiàn,làng liáng,fú piǎo,é,mò mù,wèn wǎn miǎn,jié,nán,mù,kǎn,lái,lián,shì shí,wō,tù tú,xiān liǎn,huò,yóu,yíng,yīng,gòng,chún,mǎng,mǎng,cì,wǎn yùn,jīng,dì,qú,dōng,jiān,zōu chù,gū,lā,lù,jú,wèi,jūn jùn,niè rěn,kūn,hé,pú,zī zì zāi,gǎo,guǒ,fú,lún,chāng,chóu,sōng,chuí,zhàn,mén,cài,bá,lí,tù tú,bō,hàn,bào,qìn,juǎn,xī,qín,dǐ,jiē shà,pú,dàng,jǐn,qiáo zhǎo,tái zhī chí,gēng,huá huà huā,gū,líng,fēi fěi,qín qīn jīn,ān,wǎng,běng,zhǒu,yān,zū,jiān,lǐn má,tǎn,shū,tián tiàn,dào,hǔ,qí,hé,cuì,táo,chūn,bì,cháng,huán,fèi,lái,qī,méng,píng,wěi,dàn,shà,huán,yǎn,yí,tiáo,qí,wǎn,cè,nài,zhěn,tuò,jiū,tiē,luó,bì,yì,pān,bó,pāo,dìng,yíng,yíng,yíng,xiāo,sà,qiū,kē,xiāng,wàn,yǔ,yú,fù,liàn,xuān,xuān,nǎn,cè,wō,chǔn,shāo,yú,biān,mào,ān,è,là luò lào,yíng,kuò,kuò,jiāng,miǎn,zuò,zuò,zū,bǎo,róu,xǐ,yè,ān,qú,jiān,fú,lǜ,jīng,pén,fēng,hóng,hóng,hóu,xìng,tū,zhù zhuó zhe,zī,xiāng,shèn,gé gě,qiā,qíng,mǐ,huáng,shēn,pú,gài,dǒng,zhòu,qián,wěi,bó,wēi,pā,jì,hú,zàng,jiā,duàn,yào,jùn,cōng,quán,wēi,zhēn,kuí,tíng,hūn,xǐ,shī,qì,lán,zōng,yāo,yuān,méi,yūn,shù,dì,zhuàn,guān,rǎn,xuē,chǎn,kǎi,kuì kuài,huā,jiǎng,lóu,wěi,pài,yòng,sōu,yīn,shī,chún,shì shí,yūn,zhēn,làng,rú ná,mēng méng měng,lì,quē,suàn,yuán huán,lì,jǔ,xī,bàng,chú,xú shú,tú,liú,huò,diǎn,qiàn,zū jù,pò,cuó,yuān,chú,yù,kuǎi,pán,pú,pú,nà,shuò,xí xì,fén,yún,zhēng,jiān,jí,ruò,cāng,ēn,mí,hāo,sūn,zhēn,míng,sōu sǒu,xù,liú,xí,gū,láng,róng,wěng,gài gě hé,cuò,shī,táng,luǒ,rù,suō,xuān,bèi,yǎo zhuó,guì,bì,zǒng,gǔn,zuò,tiáo,cè,pèi,lán,dàn,jì,lí,shēn,lǎng,yù,líng,yíng,mò,diào tiáo dí,tiáo,mǎo,tōng,zhú,péng,ān,lián,cōng,xǐ,píng,qiū xū fū,jǐn,chún,jié,wéi,tuī,cáo,yù,yì,zí jú,liǎo lù,bì,lǔ,xù,bù,zhāng,léi,qiáng,màn,yán,líng,jì,biāo,gǔn,hàn,dí,sù,lù,shè,shāng,dí,miè,hūn,màn wàn,bo,dì,cuó,zhè,shēn,xuàn,wèi,hú,áo,mǐ,lóu,cù,zhōng,cài,pó,jiǎng,mì,cōng,niǎo,huì,juàn,yín,jiān,niān,shū,yīn,guó,chén,hù,shā,kòu,qiàn,má,zàng,zé,qiáng,dōu,liǎn,lìn,kòu,ǎi,bì,lí,wěi,jí,qián xún,shèng,fán,méng,ǒu,chǎn,diǎn,xùn,jiāo,ruǐ,ruǐ,lěi,yú,qiáo,zhū,huá,jiān,mǎi,yún,bāo,yóu,qú,lù,ráo,huì,è,tí,fěi,jué,zuì,fà,rú,fén,kuì,shùn,ruí,yǎ,xū,fù,jué,dàng,wú,dǒng,sī,xiāo,xì,sà,yùn,shāo,qí,jiān,yùn,sūn,líng,yù,xiá,wèng,jí,hòng,sì,nóng,lěi,xuān,yùn,yù,xí xiào,hào,báo bó bò,hāo,ài,wēi,huì,huì,jì,cí zī,xiāng,wàn luàn,miè,yì,léng,jiāng,càn,shēn,qiáng sè,lián,kē,yuán,dá,tì,tāng,xuē,bì,zhān,sūn,xiān liǎn,fán,dǐng,xiè,gǔ,xiè,shǔ,jiàn,hāo kǎo,hōng,sà,xīn,xūn,yào,bài,sǒu,shǔ,xūn,duì,pín,yuǎn wěi,níng,chóu zhòu,mái wō,rú,piáo,tái,jì qí,zǎo,chén,zhēn,ěr,nǐ,yíng,gǎo,cóng,xiāo hào,qí,fá,jiǎn,xù yù xū,kuí,jiè jí,biǎn,diào zhuó,mí,lán,jìn,cáng zàng,miǎo,qióng,qì,xiǎn,liáo,ǒu,xián,sù,lǘ,yì,xù,xiě,lí,yì,lǎ,lěi,jiào,dí,zhǐ,bēi,téng,yào,mò,huàn,biāo pāo,fān,sǒu,tán,tuī,qióng,qiáo,wèi,liú liǔ,huì huí,ōu,gǎo,yùn,bǎo,lì,shǔ,zhū chú,ǎi,lìn,zǎo,xuān,qìn,lài,huò,tuò,wù,ruǐ,ruǐ,qí,héng,lú,sū,tuí,máng,yùn,pín píng,yù,xūn,jì,jiōng,xuān,mó,qiū,sū,jiōng,péng,niè,bò,ráng,yì,xiǎn,yú,jú,liǎn,liǎn,yǐn,qiáng,yīng,lóng,tǒu,huā,yuè,lìng,qú,yáo,fán,mí,lán,guī,lán,jì,dàng,màn,lèi,léi,huī,fēng,zhī,wèi,kuí,zhàn,huái,lí,jì,mí,lěi,huài,luó,jī,kuí,lù,jiān,sà,téng,léi,quǎn,xiāo,yì,luán,mén,biē,hū,hǔ,lǔ,nüè,lǜ,sī,xiāo,qián,chǔ,hū,xū,cuó,fú,xū,xū,lǔ,hǔ,yú,hào,jiāo,jù,guó,bào,yán,zhàn,zhàn,kuī,bīn,xì,shù,chóng,qiú,diāo,jǐ,qiú,dīng,shī,xiā,jué,zhé,shé,yú,hán,zǐ,hóng,huǐ,méng,gè,suī,xiā,chài,shí,yǐ,mǎ mā mà,xiǎng,fāng bàng,è,bā,chǐ,qiān,wén,wén,ruì,bàng bèng,pí,yuè,yuè,jūn,qí,tóng,yǐn,qí zhǐ,cán,yuán wán,jué quē,huí,qín qián,qí,zhòng,yá,háo,mù,wáng,fén,fén,háng,gōng zhōng,zǎo,fù fǔ,rán,jiè,fú,chī,dǒu,bào,xiǎn,ní,dài dé,qiū,yóu,zhà,píng,chí,yòu,kē,hān,jù,lì,fù,rán,zhá,gǒu qú xù,pí,pí bǒ,xián,zhù,diāo,bié,bīng,gū,zhān,qū,shé yí,tiě,líng,gǔ,dàn,tún,yíng,lì,chēng,qū,móu,gé luò,cì,huí,huí,máng bàng,fù,yáng,wā,liè,zhū,yī,xián,kuò,jiāo,lì,yì xǔ,píng,jié,gé há,shé,yí,wǎng,mò,qióng,qiè ní,guǐ,qióng,zhì,mán,lǎo,zhé,jiá,náo,sī,qí,xíng,jiè,qiú,xiāo,yǒng,jiá,tuì,chē,bèi,é yǐ,hàn,shǔ,xuán,fēng,shèn,shèn,fǔ,xiǎn,zhé,wú,fú,lì,láng,bì,chú,yuān,yǒu,jié,dàn,yán,tíng,diàn,tuì,huí,wō,zhī,zhōng,fēi,jū,mì,qí,qí,yù,jùn,là,měng,qiāng,sī,xī,lún,lì,dié,tiáo,táo,kūn,hán,hàn,yù,bàng,féi,pí,wēi,dūn,yì,yuān,suò,quán,qiǎn,ruì,ní,qīng,wèi,liǎng,guǒ,wān,dōng,è,bǎn,dì,wǎng,cán,yǎng,yíng,guō,chán,dìng,là,kē,jí,xiē,tíng,mào,xū,mián,yú,jiē,shí,xuān,huáng,yǎn,biān,róu,wēi,fù,yuán,mèi,wèi,fú,rú,xié,yóu,qiú,máo,xiā,yīng,shī,chóng,tāng,zhū,zōng,dì,fù,yuán,kuí,méng,là,dài,hú,qiū,dié,lì,wō,yūn,qǔ,nǎn,lóu,chūn,róng,yíng,jiāng,bān,láng,páng,sī,xī,cì,xī qī,yuán,wēng,lián,sǒu,bān,róng,róng,jí,wū,xiù,hàn,qín,yí,bī pí,huá,táng,yǐ,dù,nài něng,hé xiá,hú,guì huǐ,mǎ mā mà,míng,yì,wén,yíng,téng,zhōng,cāng,sāo,qí,mǎn,dāo,shāng,shì zhē,cáo,chī,dì,áo,lù,wèi,dié zhì,táng,chén,piāo,qú jù,pí,yú,chán jiàn,luó,lóu,qǐn,zhōng,yǐn,jiāng,shuài,wén,xiāo,wàn,zhé,zhè,má mò,má,guō,liú,máo,xī,cōng,lí,mǎn,xiāo,chán,zhāng,mǎng měng,xiàng,mò,zuī,sī,qiū,tè,zhí,péng,péng,jiǎo,qú,biē bié,liáo,pán,guǐ,xǐ,jǐ,zhuān,huáng,fèi bēn,láo liáo,jué,jué,huì,yín xún,chán,jiāo,shàn,náo,xiāo,wú,chóng,xún,sī,chú,chēng,dāng,lí,xiè,shàn,yǐ,jǐng,dá,chán,qì,cī,xiǎng,shè,luǒ,qín,yíng,chài,lì,zéi,xuān,lián,zhú,zé,xiē,mǎng,xiè,qí,róng,jiǎn,měng,háo,rú,huò,zhuó,jié,pín,hē,miè,fán,lěi,jié,là,mǐn,lǐ,chǔn,lì,qiū,niè,lú,dù,xiāo,zhū,lóng,lí,lóng,fēng,yē,pí,náng,gǔ,juān,yīng,shǔ,xī,cán,qú,quán,dù,cán,mán,qú,jié,zhú,zhuó,xiě xuè,huāng,nǜ,pēi,nǜ,xìn,zhòng,mài,ěr,kè,miè,xì,háng xíng,yǎn,kàn,yuàn,qú,líng,xuàn,shù,xián,tòng,xiàng,jiē,xián,yá,hú,wèi,dào,chōng,wèi,dào,zhūn,héng,qú,yī,yī,bǔ,gǎn,yú,biǎo,chà,yì,shān,chèn,fū,gǔn,fēn,shuāi cuī,jié,nà,zhōng,dǎn,rì,zhòng,zhōng,jiè,zhǐ,xié,rán,zhī,rèn,qīn,jīn,jūn,yuán,mèi,chài,ǎo,niǎo,huī,rán,jiā,tuó tuō,lǐng líng,dài,bào páo pào,páo,yào,zuò,bì,shào,tǎn,jù jiē,hè kè,xué,xiù,zhěn,yí yì,pà,fú,dī,wà,fù,gǔn,zhì,zhì,rán,pàn,yì,mào,tuō,nà jué,gōu,xuàn,zhé,qū,bèi pī,yù,xí,mí,bó,bō,fú,chǐ nuǒ,chǐ qǐ duǒ nuǒ,kù,rèn,péng,jiá jié qiā,jiàn zùn,bó mò,jié,ér,gē,rú,zhū,guī guà,yīn,cái,liè liě,kǎ,háng,zhuāng,dāng,xū,kūn,kèn,niǎo,shù,jiá,kǔn,chéng chěng,lǐ,juān,shēn,póu,gé jiē,yì,yù,zhěn,liú,qiú,qún,jì,yì,bǔ,zhuāng,shuì,shā,qún,lǐ,lián,liǎn,kù,jiǎn,bāo,chān,bì pí,kūn,táo,yuàn,líng,chǐ,chāng,chóu dāo,duō,biǎo,liǎng,cháng shang,péi,péi,fēi,yuān gǔn,luǒ,guǒ,yǎn ān,dú,xī tì,zhì,jū,yǐ,qí,guǒ,guà,kèn,qī,tì,tí,fù,chóng,xiè,biǎn,dié,kūn,duān,xiù,xiù,hè,yuàn,bāo,bǎo,fù fú,yú,tuàn,yǎn,huī,bèi,zhǔ,lǚ,páo,dān,yùn,tā,gōu,dā,huái,róng,yuán,rù,nài,jiǒng,suǒ,bān,tuì tùn,chǐ,sǎng,niǎo,yīng,jiè,qiān,huái,kù,lián,lán,lí,zhě,shī,lǚ,yì,diē,xiè,xiān,wèi,biǎo,cáo,jì,qiǎng,sēn,bāo,xiāng,bì,fú,jiǎn,zhuàn,jiǎn,cuì,jí,dān,zá,fán,bó,xiàng,xín,bié,ráo,mǎn,lán,ǎo,zé,guì,cào,suì,nóng,chān,liǎn,bì,jīn,dāng,shǔ,tǎn,bì,lán,fú,rú,zhǐ,dùi,shǔ,wà,shì,bǎi,xié,bó,chèn,lǎi,lóng,xí,xiān,lán,zhě,dài,jǔ,zàn,shī,jiǎn,pàn,yì,lán,yà,xī,yà,yào yāo,fěng,tán qín,fù,fiào,fù,bà pò,hé,jī,jī,jiàn xiàn,guān guàn,biàn,yàn,guī,jué jiào,piǎn,mào,mì,mì,piē miè,shì,sì,chān,zhěn,jué jiào,mì,tiào,lián,yào,zhì,jūn,xī,shǎn,wēi,xì,tiǎn,yú,lǎn,è,dǔ,qīn qìng,pǎng,jì,míng,yíng yǐng,gòu,qū qù,zhàn zhān,jìn,guān guàn,dèng,jiàn biǎn,luó luǎn,qù qū,jiàn,wéi,jué jiào,qù qū,luó,lǎn,shěn,dí,guān guàn,jiàn xiàn,guān guàn,yàn,guī,mì,shì,chān,lǎn,jué jiào,jì,xí,dí,tiǎn,yú,gòu,jìn,qù qū,jiǎo jué,qiú,jīn,cū,jué,zhì,chào,jí,gū,dàn,zī zuǐ,dǐ,shāng,huà xiè,quán,gé,shì,jiě jiè xiè,guǐ,gōng,chù,jiě jiè xiè,hùn,qiú,xīng,sù,ní,jī qí,jué,zhì,zhā,bì,xīng,hú,shāng,gōng,zhì,xué hù,chù,xī,yí,lì lù,jué,xī,yàn,xī,yán,yán,dìng,fù,qiú,qiú,jiào,hōng,jì,fàn,xùn,diào,hòng,chài,tǎo,xū,jié,dàn,rèn,xùn,yín,shàn,qì,tuō,jì,xùn,yín,é,fēn,yà,yāo,sòng,shěn,yín,xīn,jué,xiáo,nè,chén,yóu,zhǐ,xiōng,fǎng,xìn,chāo,shè,yán,sǎ,zhùn,xū,yì,yì,sù,chī,hē,shēn,hé,xù,zhěn,zhù,zhèng,gòu,zī,zǐ,zhān,gǔ,fù,jiǎn,dié,líng,dǐ,yàng,lì,náo,pàn,zhòu,gàn,yì,jù,yào,zhà,tuó,yí,qǔ,zhào,píng,bì,xiòng,qū,bá,dá,zǔ,tāo,zhǔ,cí,zhé,yǒng,xǔ,xún,yì,huǎng,hé,shì,chá,xiào,shī,hěn,chà,gòu,guǐ,quán,huì,jié,huà,gāi,xiáng,wēi,shēn,chóu,tóng,mí,zhān,míng,luò,huī,yán,xiōng,guà,èr,bìng,tiǎo diào,yí chǐ chì,lěi,zhū,kuāng,kuā kuà,wū,yù,téng,jì,zhì,rèn,cù,lǎng làng,é,kuáng,ēi éi ěi èi xī,shì,tǐng,dàn,bèi bó,chán,yòu,kēng,qiào,qīn,shuà,ān,yǔ yù,xiào,chéng,jiè,xiàn,wū,wù,gào,sòng,bū,huì,jìng,shuō shuì yuè,zhèn,shuō shuì yuè,dú,huā,chàng,shuí shéi,jié,kè,qū juè,cóng,xiáo,suì,wǎng,xián,fěi,chī lài,tà,yì,nì ná,yín,diào tiáo,pǐ bēi,zhuó,chǎn,chēn,zhūn,jì jī,qī,tán,zhuì,wěi,jū,qǐng,dǒng,zhèng,zé zuò zhǎ cuò,zōu,qiān,zhuó,liàng,jiàn,chù jí,xià háo,lùn lún,shěn,biǎo,huà,biàn,yú,dié,xū,piǎn,shì dì,xuān,shì,hùn,huà guā,è,zhòng,dì,xié,fú,pǔ,tíng,jiàn,qǐ,yù,zī,zhuān,xǐ shāi āi,huì,yīn,ān,xián,nán nàn,chén,fěng,zhū,yáng,yàn,huáng,xuān,gé,nuò,xǔ,móu,yè,wèi,xīng,téng,zhōu,shàn,jiǎn,bó,kuì,huǎng,huò,gē,yíng,mí,xiǎo,mì,xǐ,qiāng,chēn,xuè,tí,sù,bàng,chí,qiān,shì,jiǎng,yuán,xiè,hè,tāo,yáo,yáo,lū,yú,biāo,còng,qǐng,lí,mó,mó,shāng,zhé,miù,jiǎn,zé,jiē,lián,lóu,càn,ōu,gùn,xí,zhuó,áo,áo,jǐn,zhé,yí,hū,jiàng,mán,cháo,hàn,huá,chǎn,xū,zēng,sè,xī,zhā,duì,zhèng,náo,lán,é,yīng,jué,jī,zǔn,jiǎo,bò,huì,zhuàn,wú,zèn,zhá,shí,qiáo,tán,jiàn,pǔ,shéng,xuān,zào,tán,dǎng,suì,xiǎn,jī,jiào,jǐng,zhàn,nóng,yī,ǎi,zhān,pì,huǐ,huà,yì,yì,shàn,ràng,ròu,qiǎn,duì,tà,hù,zhōu,háo,ài,yīng,jiān,yù,jiǎn,huì,dú,zhé,juàn xuān,zàn,lěi,shěn,wèi,chǎn,lì,yí tuī,biàn,zhé,yàn,è,chóu,wèi,chóu,yào,chán,ràng,yǐn,lán,chèn,xié,niè,huān,zàn,yì,dǎng,zhán,yàn,dú,yán,jì,dìng,fù,rèn,jī,jié,hòng,tǎo,ràng,shàn,qì,tuō,xùn,yì,xùn,jì,rèn,jiǎng,huì,ōu,jù,yà,nè,xǔ hǔ,é,lùn lún,xiōng,sòng,fěng,shè,fǎng,jué,zhèng,gǔ,hē,píng,zǔ,shí zhì,xiòng,zhà,sù,zhěn,dǐ,zhōu,cí,qū,zhào,bì,yì,yí dài,kuāng,lěi,shì,guà,shī,jié jí,huī,chéng,zhū,shēn,huà,dàn,gòu,quán,guǐ,xún,yì,zhèng,gāi,xiáng yáng,chà,hùn,xǔ,zhōu chóu,jiè,wū,yǔ yù,qiào,wù,gào,yòu,huì,kuáng,shuō shuì yuè,sòng,ēi éi ěi èi xī,qǐng,zhū,zōu,nuò,dú dòu,zhuó,fěi,kè,wěi,yú,shuí,shěn,tiáo diào zhōu,chǎn,liàng,zhūn,suì,tán,shěn,yì,móu,chén,dié,huǎng,jiàn,xié,xuè,yè,wèi,è,yù,xuān,chán,zī,ān,yàn,dì,mí,piǎn,xū,mó,dǎng,sù,xiè,yáo,bàng,shì,qiān,mì,jǐn,mán,zhé,jiǎn,miù,tán,zèn,qiáo,lán,pǔ,jué,yàn,qiǎn,zhān,chèn,gǔ,qiān,hóng,xiā,jí,hóng,hān,hōng,xī,xī,huō huò huá,liáo,hǎn,dú,lóng,dòu,jiāng,qǐ,chǐ,lǐ,dēng,wān,bī,shù,xiàn,fēng,zhì,zhì,yàn,yàn,shǐ,chù,huī,tún,yì,tún,yì,jiān,bā,hòu,è,chú,xiàng,huàn,jiān yàn,kěn,gāi,jù,fú,xī,bīn,háo,yù,zhū,jiā,fén,xī,hù,wēn,huán,bīn,dí,zōng,fén,yì,zhì,bào,chái,àn,pí,nà,pī,gǒu,nà,yòu,diāo,mò,sì,xiū,huán huān,kěn kūn,hé mò,hé háo mò,mò,àn,mào,lí,ní,bǐ,yǔ,jiā,tuān tuàn,māo máo,pí,xī,yì,jù lóu,mò,chū,tán,huān,jué,bèi,zhēn,yuán yún yùn,fù,cái,gòng,tè,yì yí,háng,wán,pín,huò,fàn,tān,guàn,zé zhài,zhì,èr,zhù,shì,bì,zī,èr,guì,piǎn,biǎn,mǎi,dài tè,shèng,kuàng,fèi,tiē,yí,chí,mào,hè,bì bēn,lù,lìn,huì,gāi,pián,zī,jiǎ gǔ jià,xù,zéi,jiǎo,gāi,zāng,jiàn,yīng,jùn,zhèn,shē,bīn,bīn,qiú,shē,chuàn,zāng,zhōu,lài,zàn,cì,chēn,shǎng,tiǎn,péi,gēng,xián,mài,jiàn,suì,fù,dǎn,cóng,cóng,zhì,jī,zhàng,dǔ,jìn,xiōng mín,chǔn,yǔn,bǎo,zāi,lài,fèng,càng,jī,shèng,ài,zhuàn zuàn,fù,gòu,sài,zé,liáo,yì,bài,chěn,wàn zhuàn,zhì,zhuì,biāo,yūn,zèng,dàn,zàn,yàn,pú,shàn,wàn,yíng,jìn,gàn,xián,zāng,bì,dú,shú,yàn,shǎng,xuàn,lòng,gàn,zāng,bèi,zhēn,fù,yuán yùn,gòng,cái,zé,xián,bài,zhàng,huò,zhì,fàn,tān,pín,biǎn,gòu,zhù,guàn,èr,jiàn,bì bēn,shì,tiē,guì,kuàng,dài,mào,fèi,hè,yí,zéi,zhì,gǔ jiǎ,huì,zī,lìn,lù,zāng,zī,gāi,jìn,qiú,zhèn,lài,shē,fù,dǔ,jī,shú,shǎng,cì,bì,zhōu,gēng,péi,dǎn,lài,fèng,zhuì,fù,zhuàn,sài,zé,yàn,zàn,yūn,zèng,shàn,yíng,gàn,chì,xī,shè,nǎn,tóng,xì,chēng,hè,chēng,zhě,xiá,táng,zǒu,zǒu,lì,jiū,fù,zhào,gǎn,qǐ,shàn,qióng,yǐn,xiǎn,zī,jué,qǐn,chí,cī,chèn,chèn,dié tú,qiè jū,chāo,dī,xì,zhān,jué,yuè,qū cù,jí jié,qū,chú,guā huó,xuè,zī,tiào,duǒ,liè,gǎn,suō,cù,xí,zhào,sù,yǐn,jú,jiàn,què qì jí,tàng tāng,chuō zhuó,cuǐ,lù,qù cù,dàng,qiū,zī,tí,qū cù,chì,huáng,qiáo,qiāo,jiào,zào,tì yuè,ěr,zǎn,zǎn,zú,pā,bào bō,kuà wù,kē,dǔn,jué guì,fū,chěn,jiǎn,fāng fàng páng,zhǐ,tā,yuè,bà páo,qí qǐ,yuè,qiāng qiàng,tuò,tái,yì,jiàn chén,líng,mèi,bá,diē,kū,tuó,jiā,cī cǐ,pǎo páo,qiǎ,zhù,jū,diǎn tiē dié,zhí,fū,pán bàn,jū jù qiè,shān,bǒ,ní,jù,lì luò,gēn,yí,jì,dài duò duō chí,xiǎn,jiāo,duò,zhū,quán,kuà,zhuǎi,guì,qióng,kuǐ,xiáng,dié,lù,pián bèng,zhì,jié,tiào táo,cǎi,jiàn,dá,qiāo,bì,xiān,duò,jī,jú,jì,shū chōu,tú,chuò,jìng,niè,xiāo,bù,xué,qūn,mǔ,shū,liáng liàng,yǒng,jiǎo,chóu,qiāo,móu,tà,jiàn,jī,wō,wěi,chuō,jié,jí,niè,jū,niè,lún,lù,lèng,huái,jù,chí,wǎn,quán,tī,bó,zú,qiè,qī,cù,zōng,cǎi,zōng,pèng,zhì,zhēng,diǎn,zhí,yú,duó,dùn,chuǎn,yǒng,zhǒng,dì,zhě,chěn,chuài,jiàn,guā,táng,jǔ,fú,cù,dié,pián,róu,nuò,tí,chǎ,tuǐ,jiǎn,dǎo,cuō,xī,tà,qiāng,niǎn,diān,tí,jí,niè,pán,liū,zàn,bì,chōng,lù,liáo,cù,tāng,dài,sù,xǐ,kuǐ,jì,zhí,qiāng,dí,pán,zōng,lián,bèng,zāo,niǎn,bié,tuí,jú,dēng,cèng,xiān,fán,chú,zhōng,dūn,bō,cù,cù,jué juě,jué,lìn,tà,qiāo,qiāo,pǔ,liāo,dūn,cuān,guàn,zào,tà,bì,bì,zhú,jù,chú,qiào,dǔn,chóu,jī,wǔ,yuè,niǎn,lìn,liè,zhí,lì luò,zhì,chán,chú,duàn,wèi,lóng lǒng,lìn,xiān,wèi,zuān,lán,xiè,ráng,sǎ xiè,niè,tà,qú,jí,cuān,zuān,xǐ,kuí,jué,lìn,shēn,gōng,dān,fēn,qū,tǐ,duǒ,duǒ,gōng,láng,rěn,luǒ,ǎi,jī,jū,tǎng,kōng,lào,yǎn,měi,kāng,qū,lóu,lào,duǒ,zhí,yàn,tǐ,dào,yīng,yù,chē jū,yà zhá gá,guǐ,jūn,wèi,yuè,xìn xiàn,dài,xuān,fàn guǐ,rèn,shān,kuáng,shū,tún,chén,dài,è,nà,qí,máo,ruǎn,kuáng,qián,zhuàn zhuǎn,hōng,hū,qú,kuàng,dǐ,líng,dài,āo ào,zhěn,fàn,kuāng,yǎng,pēng,bèi,gū,gū,páo,zhù,rǒng,è,bá,zhóu zhòu,zhǐ,yáo,kē kě,yì dié,qīng,shì,píng,ér,gǒng,jú,jiào,guāng,lù,kǎi,quán,zhōu,zài,zhì,shē,liàng,yù,shāo,yóu,wàn,yǐn,zhé,wǎn,fǔ,qīng,zhōu,ní,líng,zhé,hàn,liàng,zī,huī,wǎng,chuò,guǒ,kǎn,yǐ,péng,qiàn,gǔn,niǎn,píng,guǎn,bèi,lún,pái,liáng,ruǎn,róu,jí,yáng,xián,chuán,còu,chūn,gé,yóu,hōng,shū,fù,zī,fú,wēn,fàn,zhǎn,yú,wēn,tāo,gǔ,zhēn,xiá,yuán,lù,jiāo,cháo,zhuǎn,wèi,hūn,xuě,zhé,jiào,zhàn,bú,lǎo,fén,fān,lín,gé,sè,kǎn,huàn,yǐ,jí,duì,ér,yú,jiàn,hōng,léi,pèi,lì,lì,lú,lìn,chē jū,yà,guǐ,xuān,dài,rèn,zhuǎn zhuàn zhuǎi,è,lún,ruǎn,hōng,gū,kē,lú,zhóu zhòu,zhǐ,yì,hū,zhěn,lì,yáo,qīng,shì,zǎi zài,zhì,jiào,zhōu,quán,lù,jiào,zhé,fǔ,liàng,niǎn,bèi,huī,gǔn,wǎng,liáng,chuò,zī,còu,fú,jí,wēn,shū,pèi,yuán,xiá,zhǎn niǎn,lù,zhé,lín,xīn,gū,cí,cí,bì pì,zuì,biàn,là,là,cí,xuē,bàn,biàn,biàn,biàn,xuē,biàn,bān,cí,biàn,biàn,chén,rǔ,nóng,nóng,zhěn,chuò,chuò,yī,réng,biān,dào biān,shi,yū,liáo,dá,chān,gān,qiān,yū,yū,qì,xùn,yǐ yí,guò guo guō,mài,qī,zā,wàng kuāng,tù,zhūn,yíng,dá,yùn,jìn,háng,yà,fǎn,wǔ,dá,é,huán hái,zhè zhèi,dá,jìn,yuǎn yuàn,wéi,lián,chí,chè,chí,tiáo,zhì lì,yǐ yí,jiǒng,jiā,chén,dài,ěr,dí,pò pǎi,zhù wǎng,dié,zé,táo,shù,yǐ yí,qù,jìng,huí,dòng,yòu,mí,bèng,jì,nǎi,yí,jié,zhuī duī,liè,xùn,tuì,sòng,shì,táo,páng,hòu,nì,dùn,jiǒng,xuǎn,xùn,bū,yōu,xiāo,qiú,tòu,zhú,qiú,dì,dì,tú,jìng,tì,dòu,yǐ,zhè,tōng,guàng,wǔ,shì,chěng,sù,zào,qūn,féng,lián,suò,huí,lǐ,gǔ,lái,bèn,cuò,zhú,bèng,huàn,dài,lù,yóu,zhōu,jìn,yù,chuō,kuí,wēi,tì,yì,dá,yuǎn,luó,bī,nuò,yú,dàng,suí,dùn,suì,yǎn,chuán,chí,dì tí,yù,shí,zhēn,yóu,yùn,è,biàn,guò,è,xiá,huáng,qiú,dào,dá,wéi,nán,yí,gòu,yáo,chòu,liù,xùn,tà,dì,chí,yuǎn,sù,tà,qiǎn,mǎ,yáo,guàn,zhāng,áo,shì,cà,chì,sù,zāo,zhē,dùn,dì,lóu,chí,cuō,lín,zūn,rào,qiān,xuǎn,yù,yí,è,liáo,jù,shì,bì,yāo,mài,xiè,suì,huán hái,zhān,téng,ěr,miǎo,biān,biān,lā,lí chí,yuán,yáo,luó,lǐ,yì,tíng,dèng,qǐ,yōng,shān,hán,yú,máng,rú,qióng,xī,kuàng,fū,kàng háng,bīn,fāng,xíng,nà nǎ nèi nā,xīn,shěn,bāng,yuán,cūn,huǒ,xié yá yé yú xú,bāng,wū,jù,yóu,hán,tái,qiū,bì,pī,bǐng,shào,bèi,wǎ,dǐ,zōu,yè,lín,kuāng,guī,zhū,shī,kū,yù,gāi hái,hé,qiè xì,zhì,jí,xún huán,hòu,xíng,jiāo,xí,guī,nà,láng làng,jiá,kuài,zhèng,láng,yùn,yán,chéng,dòu,xī,lǚ,fǔ,wú,fú,gào,hǎo,láng,jiá,gěng,jùn,yǐng,bó,xì,bèi,lì zhí,yún,bù,xiáo ǎo,qī,pí,qīng,guō,zhōu,tán,zōu,píng,lái,ní,chēn,yóu,bù,xiāng,dān,jú,yōng,qiāo,yī,dū dōu,yǎn,méi,ruò,bèi,è,shū,juàn,yǔ,yùn,hóu,kuí,xiāng,xiāng,sōu,táng,míng,xī,rǔ,chù,zī,zōu,yì,wū,xiāng,yún,hào,yōng,bǐ,mào,cháo,fū,liǎo,yín,zhuān,hù,qiāo,yān,zhāng,màn,qiāo,xǔ,dèng,bì,xún,bì,zēng,wéi,zhèng,mào,shàn,lín,pó,dān,méng,yè,cào,kuài,fēng,méng,zōu,kuàng,liǎn,zàn,chán,yōu,qí,yàn,chán,zàn,líng,huān,xī,fēng,zàn,lì,yǒu,dīng dǐng,qiú,zhuó,pèi,zhòu,yǐ,gān,yú,jiǔ,yǎn,zuì,máo,dān,xù,dòu,zhēn,fēn,yuán,fū,yùn,tài,tiān,qiǎ,tuó,zuò,hān,gū,sū,pō,chóu,zài,mǐng,lào,chuò,chóu,yòu,tóng,zhǐ,xiān,jiàng,chéng,yìn,tú,jiào,méi,kù,suān,lèi,pú,zuì,hǎi,yàn,shī,niàng niàn niáng,wéi,lù,lǎn,yān,táo,pēi,zhǎn,chún,tán dàn,zuì,zhuì,cù,kūn,tí tǐ,xián,dū,hú,xǔ,xǐng,tǎn,qiú chōu,chún,yùn,pō fā,kē,sōu,mí,quán,chǒu,cuō,yùn,yòng,àng,zhà,hǎi,táng,jiàng,piǎo,chǎn chěn,yù,lí,zāo,láo,yī,jiàng,bú,jiào,xī,tán,pō fā,nóng,yì shì,lǐ,jù,yàn liǎn xiān,yì,niàng,rú,xūn,chóu,yàn,líng,mí,mí,niàng,xìn,jiào,shī,mí,yàn,biàn,cǎi cài,shì,yòu,shì,shì,lǐ,zhòng chóng,yě,liáng liàng,lí xǐ xī,jīn,jīn,gá,yǐ,liǎo liào,dāo,zhāo,dīng dìng,pō,qiú,hé,fǔ,zhēn,zhí,bā,luàn,fǔ,nǎi,diào,shān shàn,qiǎo jiǎo,kòu,chuàn,zǐ,fán,huá yú,huá wū,hàn,gāng,qí,máng,rì rèn jiàn,dì dài,sì,xì,yì,chāi,shī yí,tǔ,xī,nǚ,qiān,qiú,rì rèn jiàn,pī zhāo,yé yá,jīn,bǎ,fāng,chén,xíng,dǒu,yuè,qiān,fū,bù,nà,xīn,é,jué,dùn,gōu,yǐn,qián,bǎn,sà,rèn,chāo,niǔ,fēn,yǔn,yǐ,qín,pī,guō,hóng,yín,jūn,diào,yì,zhōng,xǐ,gài,rì,huǒ,tài,kàng,yuán,lú,è,qín,duó,zī,ní,tú,shì,mín,gū,kē,líng,bǐng,sì,gǔ,bó,pí,yù,sì,zuó,bū,yóu,diàn,jiǎ,zhēn,shǐ,shì,tiě,jù,zuān,shī,tā,xuàn,zhāo,bào,hé,bì,shēng,chú,shí,bó,zhù,chì,zā,pǒ,tóng,qián,fú,zhǎi,mǎo,qiān,fú,lì,yuè,pī,yāng,bàn,bō,jié,gōu,shù,zhēng,mǔ,xǐ,xǐ,dì,jiā,mù,tǎn,shén,yǐ,sī,kuàng,kǎ,běi,jiàn,tóng,xíng,hóng,jiǎo,chǐ,ěr,gè,bǐng píng,shì,máo,hā,yín,jūn,zhōu,chòng,xiǎng jiōng,tóng,mò,lèi,jī,yù sì,xù huì,rén rěn,zùn,zhì,qióng,shàn shuò,chì lì,xiǎn xǐ,xíng,quán,pī,tiě,zhū,hóu xiàng,míng,kuǎ,diào tiáo yáo,xiān kuò tiǎn guā,xián,xiū,jūn,chā,lǎo,jí,pǐ,rú,mǐ,yī,yīn,guāng,ǎn,diū,yǒu,sè,kào,qián,luán,sī,āi,diào,hàn,ruì,shì zhì,kēng,qiú,xiāo,zhé niè,xiù,zàng,tī,cuò,xiān kuò tiǎn guā,hòng gǒng,zhōng yōng,tōu tù dòu,lǚ,méi méng,láng,wàn jiǎn,xīn,yún,bèi,wù,sù,yù,chán,tǐng dìng,bó,hàn,jiá,hóng,juān jiān cuān,fēng,chān,wǎn,zhì,sī tuó,xuān juān juàn,huá wú wū,wú,tiáo,kuàng,zhuó chuò,lüè,xíng xìng jīng,qǐn,shèn,hán,lüè,yé,chú,zèng,jū jú,xiàn,é,máng,pū pù,lí,pàn,ruì,chéng,gào,lǐ,tè,bīng,zhù,zhèn,tū,liǔ,zuì niè,jù jū,chǎng,yuǎn yuān wǎn wān,jiān jiàn,gāng gàng,diào,táo,shǎng,lún,kè,líng,pī,lù,lí,qīng,péi,juǎn,mín,zuì,péng,àn,pī,xiàn,yā,zhuī,lèi,ā,kōng,tà,kūn,dú,nèi,chuí,zī,zhēng,bēn,niè,cóng,chún,tán,dìng,qí,qián,zhuì,jī,yù,jǐn,guǎn,máo,chāng,tiǎn,xī,liàn,diāo,gù,cuò,shù,zhēn,lù,měng,lù,huā,biǎo,gá,lái,kěn,fāng,bū,nài,wàn,zàn,hǔ,dé,xiān,piān,huò,liàng,fǎ,mén,kǎi,yāng,chí,liàn,guō,xiǎn,dù,tú,wéi,zōng,fù,róu,jí,è,jūn,chěn,tí,zhá,hù,yáng,duàn,xiá,yú,kēng,shēng,huáng,wěi,fù,zhāo,chā,qiè,shī,hōng,kuí,nuò,móu,qiāo,qiāo,hóu,tōu,cōng,huán,yè,mín,jiàn,duān,jiàn,sī,kuí,hú,xuān,zhě,jié,zhēn,biān,zhōng,zī,xiū,yé,měi,pài,āi,jiè,qián,méi,cuō chā,dā tà,bàng,xiá,lián,suǒ sè,kài,liú,yáo zú,yè tà gé,nòu,wēng,róng,táng,suǒ,qiāng chēng,gé lì,shuò,chuí,bó,pán,dā,bī bì pī,sǎng,gāng,zī,wū,yíng,huàng,tiáo,liú liù,kǎi,sǔn,shā,sōu,wàn jiǎn,gǎo hào,zhèn,zhèn,láng,yì,yuán,tǎng,niè,xí,jiā,gē,mǎ,juān,sòng,zǔ,suǒ,xià,fēng,wēn,ná,lǔ,suǒ,ōu,zú chuò,tuán,xiū xiù,guàn,xuàn,liàn,shòu sōu,ào,mǎn,mò,luó,bì,wèi,liú,dí dī,sǎn qiāo càn,cōng,yí,lù áo,áo,kēng,qiāng,cuī,qī,shǎng,tāng táng,màn,yōng,chǎn,fēng,jìng,biāo,shù,lòu,xiù,cōng,lóng,zàn,jiàn zàn,cáo,lí,xià,xī,kāng,shuǎng,bèng,zhāng,qiān,zhēng,lù,huá,jí,pú,huì suì ruì,qiǎng qiāng,pō,lín,sè,xiù,sǎn xiàn sà,chēng,guì,sī,liú,náo,huáng,piě,suì,fán,qiáo,quān,xī,tàng,xiàng,jué,jiāo,zūn,liào,qì,láo,duī,xín,zān,jī,jiǎn,zhōng,dèng,yā,yǐng,duī,jué,nòu,zān,pǔ,tiě,fán,chēng,dǐng,shàn,kāi,jiǎn,fèi,suì,lǔ,juān,huì,yù,lián,zhuō,qiāo,jiàn,zhuó,léi,bì,tiě,huán,yè,duó,guò,dāng chēng,jù,fén,dá,bèi,yì,ài,zōng,xùn,diào,zhù,héng,zhuì,jī,niè,hé,huò,qīng,bīn,yīng,guì,níng,xū,jiàn,jiàn,qiǎn,chǎ,zhì,miè,lí,léi,jī,zuān,kuàng,shǎng,péng,là,dú,shuò,chuò,lǜ,biāo,bào,lǔ,xián,kuān,lóng,è,lú,xīn,jiàn,lán,bó,jiān,yuè,chán,xiāng,jiàn,xī,guàn,cáng,niè,lěi,cuān,qú,pàn,luó,zuān,luán,záo,niè,jué,tǎng,zhú,làn,jīn,gá,yǐ,zhēn,dīng dìng,zhāo,pō,liǎo liào,tǔ,qiān,chuàn,shān shàn,sà xì,fán,diào,mén,nǚ,yáng,chāi,xíng,gài,bù,tài,jù,dùn,chāo,zhōng,nà,bèi,gāng gàng,bǎn,qián,yuè yào,qīn,jūn,wū,gōu,kàng,fāng,huǒ,dǒu,niǔ,bǎ pá,yù,qián,zhēng zhèng,qián,gǔ,bō,kē,pǒ,bū,bó,yuè,zuān zuàn,mù,tǎn,jiǎ,diàn tián,yóu,tiě,bó,líng,shuò,qiān yán,mǎo,bào,shì,xuàn,tā tuó,bì,ní,pí pī,duó,xíng,kào,lǎo,ěr,máng,yā yà,yǒu,chéng,jiá,yé,náo,zhì,dāng chēng,tóng,lǚ,diào,yīn,kǎi,zhá,zhū,xiǎn xǐ,tǐng dìng,diū,xiān kuò tiǎn guā,huá,quán,shā,hā kē,diào tiáo yáo,gè,míng,zhēng,sè,jiǎo,yī,chǎn,chòng,tàng tāng,ǎn,yín,rú,zhù,láo,pū pù,wú,lái,tè,liàn,kēng,xiāo,suǒ,lǐ,zèng,chú,guō,gào,é,xiù,cuò,lüè,fēng,xīn,liǔ,kāi,jiǎn,ruì,tī,láng,qǐn,jū,ā,qiāng,zhě,nuò,cuò,máo,bēn,qí,dé,kè,kūn,chāng,xī,gù,luó,chuí,zhuī,jǐn,zhì,xiān,juǎn,huò,péi,tán,dìng,jiàn,jù,měng,zī,qiè,yīng,kǎi,qiāng,sī,è,chā,qiāo,zhōng,duàn,sōu,huáng,huán,āi,dù,měi,lòu,zī,fèi,méi,mò,zhèn,bó,gé,niè,tǎng,juān,niè,ná,liú,gǎo,bàng,yì,jiā,bīn,róng,biāo,tāng,màn,luó,bèng,yōng,jìng,dí,zú,xuàn,liú,xín,jué,liào,pú,lǔ,duī,lán,pǔ,cuān,qiǎng,dèng,huò,léi,huán,zhuó,lián,yì,chǎ,biāo,là,chán,xiāng,cháng zhǎng,cháng,jiǔ,ǎo,dié,jié,liǎo,mí,cháng zhǎng,mén,mà,shuān,shǎn,huò shǎn,mén,yán,bì,hàn bì,bì,shān,kāi,kāng kàng,bēng,hóng,rùn,sàn,xián,xián jiān jiàn,jiān jiàn,mǐn,xiā xiǎ,shuǐ,dòu,zhá,nào,zhān,pēng pèng,xiǎ kě,líng,biàn guān,bì,rùn,hé,guān,gé,hé gé,fá,chù,hòng xiàng,guī,mǐn,sē xī,kǔn,làng,lǘ,tíng tǐng,shà,jú,yuè,yuè,chǎn,qù,lìn,chāng,shā,kǔn,yān,wén,yán,è yān,hūn,yù,wén,hòng,bāo,hòng juǎn xiàng,qù,yǎo,wén,bǎn pàn,àn,wéi,yīn,kuò,què,lán,dū shé,quán,fēng,tián,niè,tà,kǎi,hé,què quē,chuǎng,guān,dòu,qǐ,kuī,táng tāng chāng,guān,piáo,kàn hǎn,xì sè tà,huì,chǎn,pì,dāng dàng,huán,tà,wén,tā,mén,shuān,shǎn,yán,hàn bì,bì,wèn,chuǎng,rùn,wéi,xián,hóng,jiān jiàn,mǐn,kàng kāng,mèn mēn,zhá,nào,guī,wén,tà,mǐn,lǘ,kǎi,fá,gé,hé,kǔn,jiū,yuè,làng,dū shé,yù,yān,chāng,xì,wén,hūn,yán,è,chǎn,lán,qù,huì,kuò,què,hé,tián,tà,quē què,kàn,huán,fù,fǔ,lè,duì,xìn,qiān,wù,yì,tuó,yīn,yáng,dǒu,è,shēng,bǎn,péi,kēng,yǔn,ruǎn,zhǐ,pí,jǐng,fáng,yáng,yīn,zhèn,jiē,chēng,è,qū,dǐ,zǔ,zuò,diàn,lín,ā ē,tuó,tuó,bēi pí pō,bǐng,fù,jì,lù,lǒng,chén,xíng,duò,lòu,mò,jiàng xiáng,shū,duò,xiàn,ér,guǐ,yū,gāi,shǎn,jùn,qiào,xíng,chún,wǔ,bì,xiá,shǎn,shēng,zhì,pū,dǒu,yuàn,zhèn,chú,xiàn,dǎo,niè,yǔn,xiǎn,péi,fèi,zōu,qí,duì,lún,yīn,jū,chuí,chén,pī,líng,táo,xiàn,lù,shēng,xiǎn,yīn,zhǔ,yáng,réng,xiá,chóng,yàn yǎn,yīn,yú yáo shù,dī,yú,lóng,wēi,wēi,niè,duì zhuì,suí duò,àn,huáng,jiē,suí,yǐn yìn,qí gāi ái,yǎn,huī duò,gé,yǔn,wù,wěi kuí,ài,xì,táng,jì,zhàng,dǎo,áo,xì,yǐn yìn,sà,rǎo,lín,tuí,dèng,pí,suì,suí,ào yù,xiǎn,fén,nǐ,ér,jī,dǎo,xí,yǐn yìn,zhì,huī duò,lǒng,xī,lì dài,lì dài,lì dài,zhuī cuī wéi,hú hè,zhī,sǔn,jùn juàn,nán nàn nuó,yì,què qiāo qiǎo,yàn,qín,jiān,xióng,yǎ,jí,gù,huán,zhì,gòu,jùn juàn,cí,yōng,jū,chú,hū,zá,luò,yú,chóu,diāo,suī,hàn,huò,shuāng,guàn huán,chú,zá,yōng,jī,guī xī,chóu,liù,lí,nán nàn nuó,yù,zá,chóu,jí,yǔ yù,yú,xuě,nǎ,fǒu,sè xí,mù,wén,fēn,pāng,yún,lì,chì,yāng,líng,léi,án,báo,wù méng,diàn,dàng,hū hù,wù,diào,xū,jì,mù,chén,xiāo,zhá,tíng,zhèn,pèi,méi,líng,qī,zhōu,huò,shà,fēi,hóng,zhān,yīn,ní,shù,tún,lín,líng,dòng,yīng,wù,líng,shuāng,líng,xiá,hóng,yīn,mài,mài,yǔn,liù,mèng,bīn,wù,wèi,kuò,yín,xí,yì,ǎi,dàn,tèng,xiàn,yù,lòu lù,lóng,dài,jí,pāng,yáng,bà,pī,wēi,fēng,xì,jì,mái,méng,méng,léi,lì,huò,ǎi,fèi,dài,lóng,lìng,ài,fēng,lì,bǎo,hè,hè,hè,bìng,qīng,qīng,jìng liàng,tiān,zhèng,jìng,chēng,qìng,jìng,jìng,diàn,jìng,tiān,fēi,fēi,kào,mí,miàn,miàn,pào,yè,miǎn,huì,yè,gé,dīng,chá,jiān,rèn,dí,dù,wù,rèn,qín,jìn,xuē,niǔ,bǎ,yǐn,sǎ,nà,mò,zǔ,dá,bàn,xiè,yào,táo,bèi,jiē,hóng,páo,yāng yàng,bǐng,yīn,gé tà sǎ,táo,jié jí,xié,ān,ān,hén,gǒng,qiǎ,dá,qiáo,tīng,mán mèn,biān yìng,suī,tiáo,qiào shāo,xuān juān,kòng,běng,tà,shàng zhǎng,bǐng pí bì bēi,kuò,jū,la,xiè dié,róu,bāng,ēng,qiū,qiū,hé,qiào,mù móu,jū,jiàn jiān,biān,dī,jiān,wēn yùn,tāo,gōu,tà,bèi,xié,pán,gé,bì bǐng,kuò,tāng,lóu,guì,qiáo,xuē,jī,jiān,jiāng,chàn,dá,huò,xiǎn,qiān,dú,wā,jiān,lán,wéi,rèn,fú,mèi wà,quàn,gé,wěi,qiào,hán,chàng,kuò,rǒu,yùn,shè xiè,wěi,gé,bài,tāo,gōu,yùn,gāo,bì,wěi,suì,dú,wà,dú,wéi,rèn,fú,hán,wěi,yùn wēn,tāo,jiǔ,jiǔ,xiān,xiè,xiān,jī,yīn,zá,yùn,sháo,lè,péng,huáng,yīng,yùn,péng,ān,yīn,xiǎng,hù,yè,dǐng,qǐng,qiú,xiàng,shùn,hān,xū,yí,xù,ě,sòng,kuǐ,qí,háng,yù,wán,bān,dùn,dí,dān,pàn,pō,lǐng,chè,jǐng,lèi,hé,qiāo,è,é,wěi,jié,kuò,shěn,yí,yí,kē,duǐ,yǔ,pīng,lèi,fǔ,jiá,tóu,huì,kuí,jiá,luō,tǐng,chēng,yǐng,jūn,hú,hàn,jǐng,tuí,tuí,bīn,lài,tuí,zī,zī,chuí,dìng,lài,tán,hàn,qiān,kē,cuì,jiǒng,qīn,yí,sāi,tí,é,è,yán,wèn,kǎn,yóng,zhuān,yán,xiǎn,xìn,yǐ,yuàn,sǎng,diān,diān,jiǎng,kuī,lèi,láo,piǎo,wài,mān,cù,yáo,hào,qiáo,gù,xùn,yǎn,huì,chàn,rú,méng,bīn,xiǎn,pín,lú,lǎn,niè,quán,yè,dǐng,qǐng,hān,xiàng,shùn,xū,xū,wán,gù,dùn,qí,bān,sòng,háng,yù,lú,lǐng,pō,jǐng gěng,jié xié jiá,jiá,tǐng,hé gé,yǐng,jiǒng,kē,yí,pín bīn,huì,tuí,hàn,yǐng,yǐng,kē,tí,yóng,è,zhuān,yán,é,niè,mān,diān,sǎng,hào,lèi,chàn zhàn,rú,pín,quán,fēng fěng,biāo diū,guā,fú,xiā,zhǎn,biāo,sà,bá fú,tái,liè,guā,xuàn,xiāo,jù,biāo,sī,wěi,yáng,yáo,sōu,kǎi,sāo sōu,fān,liú,xí,liù liáo,piāo,piāo,liú,biāo,biāo,biāo,liáo,biāo,sè,fēng,xiū,fēng fěng,yáng,zhǎn,biāo,sà,jù,sī,sōu,yáo,liú,piāo,biāo,biāo,fēi,fān,fēi,fēi,shí sì yì,shí,cān,jī,dìng,sì,tuō,zhān,sūn,xiǎng,tún,rèn,yù,yǎng juàn,chì,yǐn yìn,fàn,fàn,sūn,yǐn yìn,zhù tǒu,yí sì,zuò zé zhā,bì,jiě,tāo,bǎo,cí,tiè,sì,bǎo,shì,duò,hài,rèn,tiǎn,jiǎo,hé,bǐng,yáo,tóng,cí,xiǎng,yǎng,juàn,ěr,yàn,lè,xī,cān,bō,něi,è,bū,jùn,dòu,sù,yú,shì,yáo,hún,guǒ,shì,jiàn,chuò,bǐng,xiàn,bù,yè,dàn,fēi,zhāng,wèi,guǎn,è,nuǎn,yùn,hú,huáng,tiè,huì,jiān,hóu,ài,xíng,fēn,wèi,gǔ,chā,sòng,táng,bó,gāo,xì,kuì,liù,sōu,táo,yè,wēn,mó,táng,mán,bì,yù,xiū,jǐn,sǎn,kuì,zhuàn,shàn,xī,dàn,yì,jī,ráo,chēng,yōng,tāo,wèi,xiǎng,zhān,fēn,hài,méng,yàn,mó,chán,xiǎng náng,luó,zàn,náng,shí,dìng,jī,tuō,xíng,tún,xì,rèn,yù,chì,fàn,yǐn,jiàn,shì,bǎo,sì,duò,yí,ěr,ráo,xiǎng,hé,gē le,jiǎo,xī,bǐng,bō,dòu,è,yú,něi,jùn,guǒ,hún,xiàn,guǎn,chā,kuì,gǔ,sōu,chán,yè,mó,bó,liù liú,xiū,jǐn,mán,sǎn,zhuàn,náng nǎng,shǒu,kuí,guó,xiāng,fēn,bó,ní,bì,bó,tú,hān,fēi,jiān,ān,ài,fù,xiān,yūn wò,xīn,fén,pīn,xīn,mǎ,yù,féng píng,hàn hán,dí,tuó duò,tuō zhé,chí,xùn,zhù,zhī shì,pèi,xìn jìn,rì,sà,yǔn,wén,zhí,dǎn dàn,lú,yóu,bó,bǎo,jué kuài,tuó duò,yì,qū,wén,qū,jiōng,pǒ,zhāo,yuān,pēng,zhòu,jù,zhù,nú,jū,pī,zǎng,jià,líng,zhěn,tái dài,fù,yǎng,shǐ,bì,tuó,tuó,sì,liú,mà,pián,táo,zhì,róng,téng,dòng,xún xuān,quán,shēn,jiōng,ěr,hài,bó,zhū,yīn,luò,zhōu,dàn,hài,liú,jú,sǒng,qīn,máng,liáng láng,hàn,tú,xuān,tuì,jùn,ě,chěng,xīng,sì,lù,zhuī,zhōu,shè,pián,kūn,táo,lái,zōng,kè,qí,qí,yàn,fēi,sāo,yàn,gé,yǎo,wù,piàn,cōng,piàn,qián,fēi,huáng,qián,huō,yú,tí,quán,xiá,zōng,kuí,róu,sī,guā,tuó,guī,sōu,qiān,chéng,zhì,liú,péng,téng,xí,cǎo,dú,yàn,yuán,zōu,sāo,shàn,qí,zhì,shuāng,lù,xí,luó,zhāng,mò,ào,cān,piào,cōng,qū,bì,zhì,yù,xū,huá,bō,sù,xiāo,lín,zhàn,dūn,liú,tuó,céng,diàn,jiāo,tiě,yàn,luó,zhān,jīng,yì,yè,tuó,pīn,zhòu,yàn,lóng,lǘ,téng,xiāng,jì,shuāng,jú,xí,huān,lí,biāo,mǎ,yù,tuó,xùn,chí,qū,rì,bó,lǘ,zǎng,shǐ,sì,fù,jū,zōu,zhù,tuó,nú,jià,yì,tái,xiāo,mà,yīn,jiāo,huá,luò,hài,pián,biāo,lí,chěng,yàn,xīng,qīn,jùn,qí,qí,kè,zhuī,zōng,sù,cān,piàn,zhì,kuí,sāo sǎo,wù,áo,liú,qiān,shàn,piào biāo,luó,cōng,chǎn,zhòu,jì,shuāng,xiāng,gǔ gū,wěi,wěi,wěi,yú,gàn,yì,āng,tóu,jiè,bào,bèi mó,cī,tǐ,dǐ,kū,hái,qiāo xiāo,hóu,kuà,gé,tuǐ,gěng,pián,bì,kē,qià,yú,suí,lóu,bó,xiāo,bǎng,bó jué,cī,kuān,bìn,mó,liáo,lóu,xiāo,dú,zāng,suǐ,tǐ tī,bìn,kuān,lú,gāo,gāo,qiào,kāo,qiǎo,láo,sào,biāo,kūn,kūn,dí,fǎng,xiū,rán,máo,dàn,kūn,bìn,fà,tiáo,pī,zī,fà,rán,tì,bào,bì pǒ,máo méng,fú,ér,èr,qū,gōng,xiū,kuò yuè,jì,péng,zhuā,shāo,shā,tì,lì,bìn,zōng,tì,péng,sōng,zhēng,quán,zōng,shùn,jiǎn,duǒ,hú,là,jiū,qí,lián,zhěn,bìn,péng,mà,sān,mán,mán,sēng,xū,liè,qiān,qiān,nóng,huán,kuò,níng,bìn,liè,ráng,dòu,dòu,nào,hòng,xì,dòu,kàn,dòu,dòu,jiū,chàng,yù,yù,gé lì,yàn,fǔ,zèng,guī,zōng,liù,guī,shāng,yù,guǐ,mèi,jì,qí,gà,kuí,hún,bá,pò,mèi,xū,yǎn,xiāo,liǎng,yù,tuí,qī,wǎng,liǎng,wèi,gān,chī,piāo,bì,mó,jī,xū,chǒu,yǎn,zhān,yú,dāo,rén,jì,bā bà,hóng,tuō,diào,jǐ,yú,é,jì,shā,háng,tún,mò,jiè,shěn,bǎn,yuán,pí,lǔ,wén,hú,lú,zā,fáng,fén,nà,yóu,piàn,mó,hé,xiá,qū,hān,pī,líng,tuó,bà,qiú,píng,fú,bì,cǐ jì,wèi,jū,diāo,bó bà,yóu,gǔn,pí,nián,xīng,tái,bào,fù,zhǎ zhà,jù,gū,shí,dōng,chou dài,tǎ,jié,shū,hòu,xiǎng,ér,ān,wéi,zhào,zhū,yìn,liè,luò gé,tóng,yí,yì,bìng,wěi,jiāo,kū,guī xié wā kuí,xiān xiǎn,gé,huí,lǎo,fú,kào,xiū,tuō,jūn,tí,miǎn,shāo,zhǎ,suō,qīn,yú,něi,zhé,gǔn,gěng,sū,wú,qiú,shān,pū bū,huàn,tiáo,lǐ,shā,shā,kào,méng,chéng,lí,zǒu,xī,yǒng,shēn,zī,qí,qīng,xiǎng,něi,chún,jì,diāo,qiè,gù,zhǒu,dōng,lái,fēi,ní,yì sī,kūn,lù,jiù,chāng,jīng,lún,líng,zōu,lí,měng,zōng,zhì,nián,hǔ,yú,dǐ,shī,shēn,huàn,tí,hóu,xīng,zhū,là,zōng,jì,biān,biān,huàn,quán,zéi,wēi,wēi,yú,chūn,róu,dié,huáng,liàn,yǎn,qiū,qiū,jiǎn,bī,è,yáng,fù,sāi,jiān,xiā,tuǒ,hú,shì,ruò,xuān,wēn,jiān,hào,wū,páng,sāo,liú,mǎ,shí,shī,guān,zī,téng,tǎ,yáo,è,yóng,qián,qí,wēn,ruò,shén,lián,áo,lè,huī,mǐn,jì,tiáo,qū,jiān,shēn,mán,xí,qiú,piào,jì,jì,zhú,jiāng,xiū,zhuān,yōng,zhāng,kāng,xuě,biē,yù,qū,xiàng,bō,jiǎo,xún,sù,huáng,zūn,shàn,shàn,fān,guì,lín,xún,yáo,xǐ,zēng,xiāng,fèn,guān,hòu,kuài,zéi,sāo,zhān,gǎn,guì,yìng,lǐ,cháng,léi,shǔ,ài,rú,jì,xù,hù,shǔ,lǐ,liè,lè,miè,zhēn,xiǎng,è,lú,guàn,lí,xiān,yú,dāo,jǐ,yóu,tún,lǔ,fáng,bā bà,hé gě,bà,píng,nián,lú,yóu,zhǎ zhà,fù,bó bà,bào,hòu,pí,tái,guī xié,jié,kào,wěi,ér,tóng,zéi,hòu,kuài,jì,jiāo,xiān xiǎn,zhǎ,xiǎng,xún,gěng,lí,lián,jiān,lǐ,shí,tiáo,gǔn,shā,huàn,jūn,jì,yǒng,qīng,líng,qí,zōu,fēi,kūn,chāng,gù,ní,nián,diāo,jīng,shēn,shī,zī,fèn,dié,bī,cháng,tí,wēn,wēi,sāi xǐ,è,qiū,fù,huáng,quán,jiāng,biān,sāo,áo,qí,tǎ,guān,yáo,páng,jiān,lè,biào,xuě,biē,mán,mǐn,yōng,wèi,xí,guì jué,shàn,lín,zūn,hù,gǎn,lǐ,zhān shàn,guǎn,niǎo diǎo,yǐ,fú,lì,jiū,bú,yàn,fú,diāo zhāo,jī,fèng,rù,gān hàn yàn,shī,fèng,míng,bǎo,yuān,zhī,hù,qín,fū guī,bān fén,wén,jiān qiān zhān,shī,yù,fǒu,yāo,jué,jué,pǐ,huān,zhèn,bǎo,yàn,yā,zhèng,fāng,fèng,wén,ōu,dài,jiā,rú,líng,miè,fú,tuó,mín,lì,biǎn,zhì,gē,yuān,cí,qú,xiāo,chī,dàn,jū,yāo,gū,zhōng,yù,yāng,yù,yā,dié,yù,tián,yīng,duī,wū,ér,guā,ài,zhī,yàn,héng,xiāo,jiá,liè,zhū,yáng,yí,hóng,lù,rú,móu,gē,rén,jiāo,xiū,zhōu,chī,luò,héng,nián,ě,luán,jiá,jì,tú,huān,tuǒ,bū,wú,jiān,yù,bó,jùn,jùn,bī,xī,jùn,jú,tū,jìng,tí,é,é,kuáng,hú,wǔ,shēn,lài,zān,pàn,lù,pí,shū,fú,ān,zhuó,péng,qín,qiān,bēi,diāo,lù,què,jiān,jú,tù,yā,yuān,qí,lí,yè,zhuī,kōng,duò,kūn,shēng,qí,jīng,yì,yì,jīng,zī,lái,dōng,qī,chún,gēng,jū,qū,yì,zūn,jī,shù,yīng,chì,miáo,róu,ān,qiū,tí chí,hú,tí chí,è,jiē,máo,fú bì,chūn,tú,yǎn,hé jiè,yuán,piān biǎn,kūn,méi,hú,yīng,chuàn zhì,wù,jú,dōng,cāng qiāng,fǎng,hè hú,yīng,yuán,xiān,wēng,shī,hè,chú,táng,xiá,ruò,liú,jī,gǔ hú,jiān,sǔn xùn,hàn,cí,cí,yì,yào,yàn,jī,lì,tián,kòu,tī,tī,yì,tú,mǎ,xiāo,gāo,tián,chén,jì,tuán,zhè,áo,yǎo,yī,ōu,chì,zhì,liù,yōng,lóu lǚ,bì,shuāng,zhuó,yú,wú,jué,yín,tí,sī,jiāo,yì,huá,bì,yīng,sù,huáng,fán,jiāo,liáo,yàn,gāo,jiù,xián,xián,tú,mǎi,zūn,yù,yīng,lù,tuán,xián,xué,yì,pì,zhǔ,luó,xī,yì,jī,zé,yú,zhān,yè,yáng,pì,níng,hù,mí,yīng,méng,dí,yuè,yù,lěi,bǔ,lú,hè,lóng,shuāng,yuè,yīng,guàn,qú,lí,luán,niǎo,jiū,jī,yuān,míng,shī,ōu,yā,cāng,bǎo,zhèn,gū,dōng,lú,yā,xiāo,yāng,líng,chī,qú,yuān,xué,tuó,sī,zhì,ér,guā,xiū,héng,zhōu,gē,luán,hóng,wú,bó,lí,juān,hú,é,yù,xián,tí,wǔ,què,miáo,ān,kūn,bēi,péng,qiān,chún,gēng,yuān,sù,hú,hé,è,gǔ,qiū,cí,méi,wù,yì,yào,wēng,liú,jī,yì,jiān,hè,yī,yīng,zhè,liù,liáo,jiāo,jiù,yù,lù,huán,zhān,yīng,hù,méng,guàn,shuāng,lǔ,jīn,líng,jiǎn,xián,cuó,jiǎn,jiǎn,yán,cuó,lù,yōu,cū,jǐ,páo biāo,cū,páo,zhù cū,jūn qún,zhǔ,jiān,mí,mí,yǔ,liú,chén,jūn,lín,ní,qí,lù,jiù,jūn,jīng,lí lì,xiāng,xián,jiā,mí,lì,shè,zhāng,lín,jīng,qí,líng,yán,cū,mài,mài,hé,chǎo,fū,miàn,miàn,fū,pào,qù,qū,móu,fū,xiàn,lái,qū,miàn,chi,fēng,fū,qū,miàn,má,mó me,mó me,huī,mí,zōu,nún,fén,huáng,huáng,jīn,guāng,tiān,tǒu,hóng,huà,kuàng,hóng,shǔ,lí,nián,chī,hēi,hēi,yì,qián,dǎn,xì,tún,mò,mò,qián,dài,chù,yǒu,diǎn,yī,xiá,yǎn,qū,měi,yǎn,qíng,yuè,lí,dǎng,dú,cǎn,yān,yǎn,yǎn,dàn shèn,àn,zhěn yān,dài,cǎn,yī,méi,dǎn zhǎn,yǎn,dú,lú,zhǐ,fěn,fú,fǔ,mǐn miǎn měng,mǐn miǎn měng,yuán,cù,qù,cháo,wā,zhū,zhī,měng,áo,biē,tuó,bì,yuán,cháo,tuó,dǐng,mì,nài,dǐng,zī,gǔ,gǔ,dōng,fén,táo,yuān,pí,chāng,gāo,cào,yuān,tāng,tēng,shǔ,shǔ,fén,fèi,wén,bá,diāo,tuó,zhōng,qú,shēng,shí,yòu,shí,tíng,wú,jú,jīng,hún,jú,yǎn,tū,sī,xī,xiàn,yǎn,léi,bí,yào,qiú,hān,wù,wù,hōu,xiè,è,zhā,xiù,wèng,zhā,nòng,nàng,qí zhāi,zhāi,jì,zī,jí,jī,qí jì zī zhāi,jī,chǐ,chèn,chèn,hé,yá,yīn,xiè,bāo,zé,xiè,zī,chī,yàn,jǔ,tiáo,líng,líng,chū,quán,xiè,yín,niè,jiù,yǎo,chuò,yǔn,yǔ,chǔ,yǐ,ní,zé,zōu,qǔ,yǔn,yǎn,yú,è,wò,yì,cī,zōu,diān,chǔ,jìn,yà,chǐ,chèn,hé,yín kěn,jǔ,líng,bāo,tiáo,zī,yín kěn,yǔ,chuò,qǔ,wò,lóng lǒng,páng,gōng wò,páng,yǎn,lóng,lóng lǒng,gōng,kān,dá,líng,dá,lóng,gōng,kān,guī jūn qiū,qiū,biē,guī jūn qiū,yuè,chuī,hé,jiǎo,xié,yù"; \ No newline at end of file diff --git a/src/views/tool/qrCode.vue b/src/views/tool/qrCode.vue deleted file mode 100644 index 996d295..0000000 --- a/src/views/tool/qrCode.vue +++ /dev/null @@ -1,183 +0,0 @@ - - - diff --git a/src/views/tool/randomString.vue b/src/views/tool/randomString.vue deleted file mode 100644 index 6f87264..0000000 --- a/src/views/tool/randomString.vue +++ /dev/null @@ -1,106 +0,0 @@ - - diff --git a/src/views/tool/regex.vue b/src/views/tool/regex.vue deleted file mode 100644 index d9c0dcb..0000000 --- a/src/views/tool/regex.vue +++ /dev/null @@ -1,126 +0,0 @@ - - diff --git a/src/views/tool/serializeConversion.vue b/src/views/tool/serializeConversion.vue deleted file mode 100644 index c6f0bbf..0000000 --- a/src/views/tool/serializeConversion.vue +++ /dev/null @@ -1,57 +0,0 @@ - - \ No newline at end of file diff --git a/src/views/tool/sign.vue b/src/views/tool/sign.vue deleted file mode 100644 index 5bc6819..0000000 --- a/src/views/tool/sign.vue +++ /dev/null @@ -1,176 +0,0 @@ - - diff --git a/src/views/tool/text.vue b/src/views/tool/text.vue deleted file mode 100644 index 0c795be..0000000 --- a/src/views/tool/text.vue +++ /dev/null @@ -1,283 +0,0 @@ - - - diff --git a/src/views/tool/time.vue b/src/views/tool/time.vue deleted file mode 100644 index 9e78219..0000000 --- a/src/views/tool/time.vue +++ /dev/null @@ -1,247 +0,0 @@ - - diff --git a/src/views/tool/timestamp.vue b/src/views/tool/timestamp.vue deleted file mode 100644 index 881f243..0000000 --- a/src/views/tool/timestamp.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/src/views/tool/unicode.vue b/src/views/tool/unicode.vue deleted file mode 100644 index 6bb7a68..0000000 --- a/src/views/tool/unicode.vue +++ /dev/null @@ -1,71 +0,0 @@ - - \ No newline at end of file diff --git a/src/views/tool/unit.vue b/src/views/tool/unit.vue deleted file mode 100644 index ab02208..0000000 --- a/src/views/tool/unit.vue +++ /dev/null @@ -1,167 +0,0 @@ - - diff --git a/src/views/tool/url.vue b/src/views/tool/url.vue deleted file mode 100644 index f57d783..0000000 --- a/src/views/tool/url.vue +++ /dev/null @@ -1,52 +0,0 @@ - - diff --git a/src/views/tool/uuid.vue b/src/views/tool/uuid.vue deleted file mode 100644 index 2e4651b..0000000 --- a/src/views/tool/uuid.vue +++ /dev/null @@ -1,75 +0,0 @@ - - \ No newline at end of file diff --git a/src/views/tool/variableConversion.vue b/src/views/tool/variableConversion.vue deleted file mode 100644 index ae87158..0000000 --- a/src/views/tool/variableConversion.vue +++ /dev/null @@ -1,61 +0,0 @@ - - diff --git a/src/views/tool/websocket.vue b/src/views/tool/websocket.vue deleted file mode 100644 index f4cf2af..0000000 --- a/src/views/tool/websocket.vue +++ /dev/null @@ -1,199 +0,0 @@ - - - diff --git a/src/views/yeahmao/code_gen/codeGenJava.vue b/src/views/yeahmao/code_gen/codeGenJava.vue deleted file mode 100644 index d1a6c39..0000000 --- a/src/views/yeahmao/code_gen/codeGenJava.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/yeahmao/code_gen/codeGenJson.vue b/src/views/yeahmao/code_gen/codeGenJson.vue deleted file mode 100644 index b0245bc..0000000 --- a/src/views/yeahmao/code_gen/codeGenJson.vue +++ /dev/null @@ -1,200 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/yeahmao/constFinder.vue b/src/views/yeahmao/constFinder.vue deleted file mode 100644 index f5eda5b..0000000 --- a/src/views/yeahmao/constFinder.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/yeahmao/hexConvert.vue b/src/views/yeahmao/hexConvert.vue deleted file mode 100644 index 45d05d5..0000000 --- a/src/views/yeahmao/hexConvert.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - \ No newline at end of file diff --git a/vue.config.js b/vue.config.js deleted file mode 100644 index fb316e7..0000000 --- a/vue.config.js +++ /dev/null @@ -1,106 +0,0 @@ -const {defineConfig} = require('@vue/cli-service') -const NodePolyfillPlugin = require('node-polyfill-webpack-plugin') -const adapter = require('./src/tool/adapter'); -const pages = { - tool: { - entry: 'src/tool.js', - template: 'public/tool.html', - } -} -const config = { - productionSourceMap: false, - publicPath: "./", - pages: pages, - chainWebpack: config => { - config.plugin('define').tap(args => { - args[0]['process.ctool'] = JSON.stringify({ - version: process.env.npm_package_version, - updateTime: Date.parse((new Date()).toString()) / 1000, - platform: adapter.platform, - isChrome: adapter.isChrome, - isFirefox: adapter.isFirefox, - isEdge: adapter.isEdge, - isChromium: adapter.isChromium, - isWeb: adapter.isWeb, - isUtools: adapter.isUtools, - }); - return args - }) - if (process.env.NODE_ENV === 'production') { - // 独立打包js 防止js文件过大 影响相关平台审核 - config.optimization.splitChunks({ - cacheGroups: { - codemirror: { - test: /[\\/]node_modules[\\/]codemirror[\\/]/, - name: 'codemirror', - chunks: 'all', - priority: 100, - reuseExistingChunk: true, - enforce: true - }, - prettier: { - test: /[\\/]node_modules[\\/](prettier|@prettier|prettier-plugin-sql|sql-formatter)[\\/]/, - name: 'prettier', - chunks: 'all', - priority: 99, - reuseExistingChunk: true, - enforce: true - }, - prettierParserTypescript: { - test: /[\\/]node_modules[\\/]prettier[\\/]parser-typescript\.js/, - name: 'prettier-parser-typescript', - chunks: 'all', - priority: 100, - reuseExistingChunk: true, - enforce: true - }, - nodeSqlQarser: { - test: /[\\/]node_modules[\\/](node-sql-parser)[\\/]/, - name: 'node-sql-qarser', - chunks: 'all', - priority: 100, - reuseExistingChunk: true, - enforce: true - }, - uglify: { - test: /[\\/]src[\\/]views[\\/]tool[\\/]library[\\/]formatter[\\/]uglify\.js/, - name: 'uglify', - chunks: 'all', - priority: 100, - enforce: true - } - } - }) - } - }, - configureWebpack: { - plugins: [new NodePolyfillPlugin()], - resolve: { - fallback: { - fs: false - } - } - }, - css: { - loaderOptions: { - less: { - lessOptions: { - javascriptEnabled: true, - } - } - } - }, - lintOnSave: false, - devServer: { - // disableHostCheck: true, - // host: '0.0.0.0', - allowedHosts: [ - 'datasea.cn', - 'preview-62e00738167f7e3ed361db3c-6354405c78a0a92e29958ee5-8081.datasea.cn' - ], - } -} -adapter.initialize() - -module.exports = defineConfig(config) - diff --git "a/\345\274\200\346\272\220\344\273\273\345\212\2411.md" "b/\345\274\200\346\272\220\344\273\273\345\212\2411.md" deleted file mode 100644 index e3b248f..0000000 --- "a/\345\274\200\346\272\220\344\273\273\345\212\2411.md" +++ /dev/null @@ -1,134 +0,0 @@ -# 任务一:GitCode平台基础操作 - -## 一、任务步骤 -| 步骤 | 步骤名称 | 步骤描述 | 示意图 | -| ---- | ---- | ---- | ---- | -| 1 | Fork项目 | 从[项目列表](#五项目列表)fork感兴趣的开源项目,Fork完成即完成步骤1 | ![](https://gitcode.net/theo789/upload_project/uploads/149ed2bf8dc709da03af8a86176d92d0/image.png) | -| 2 | 创建issue | 在fork的项目中提交issue表单,说明fork理由 | ![](https://gitcode.net/theo789/upload_project/uploads/508b1d5cf4df84fe60ca0bf33c00957c/image.png) | -| 3 | 项目star | 在fork的项目中完成star动作 | ![](https://gitcode.net/theo789/upload_project/uploads/e19f6014236c9ff82d805042e7184e18/image.png)| - -**特殊说明:** -- 提交issue表单必须是有意义的话语,如“111”、“222”、“abc”等无意义的issue不算完成任务。 -- fork项目的issue和star对优质开源项目有一定参考意义,希望大家认真对待。 - -## 二、奖品发放规则 -每天给前一天完成任务的用户发放奖品 - -## 三、活动交流 -开源活动官方交流群(仅参与者之间讨论和交流)。扫码进入选手沟通群。活动重要节点通知会在群内第一时间告知,请所有参与者尽量加群。 - -![](https://file.iviewui.com/asd/cloud-ide/cloud-ide-1.png) - -## 四、活动点评 - -### 活动建议 -如果大家对本次活动有建议,可以直接在本项目中提交issue,我们会认真对待每一个评论,非常感谢大家!!! -### 活动点赞👍 -如果大家喜欢本次开源挑战赛活动,可以点击本项目的star,我们会根据大家的star数作为后期是否长期举办的重要依据,非常感谢大家!!! - -## 五、开源项目建议 -CSDN官方开源运营会随时增加优质开源项目,如大家有推荐的开源项目可通过[Issue表单](https://gitcode.net/gitcode/1024opensource/-/issues/new?issue%5Bassignee_id%5D=&issue%5Bmilestone_id%5D=)提交到本项目中,利用开源方式发现更多开源优质项目。 - -## 六、项目列表 -1. [free-programming-books](https://gitcode.net/mirrors/EbookFoundation/free-programming-books) -1. [Java程序员必读书单, 超1000本PDF](https://gitcode.net/mirrors/itwanger/JavaBooks) -1. [labuladong 的算法小抄 -](https://gitcode.net/mirrors/labuladong/fucking-algorithm) -1. [Java学习+面试指南](https://gitcode.net/mirrors/Snailclimb/JavaGuide) -1. [一款使用 Vue+Spring Boot 开发的前后端分离项目](https://gitcode.net/mirrors/antabot/white-jotter) -1. [2004-2020美赛O奖论文](https://gitcode.net/mirrors/dick20/mcm-icm) -1. [Python - 100天从新手到大师](https://gitcode.net/mirrors/jackfrued/Python-100-Days) -1. [Java处理Excel工具](https://gitcode.net/mirrors/alibaba/easyexcel) -1. [SpringBoot+MyBatis实现的电商管理系统](https://gitcode.net/mirrors/macrozheng/mall) -1. [SpringBoot+Vue开发的微人事系统vhr](https://gitcode.net/mirrors/lenve/vhr) -1. [阿里巴巴 MySQL binlog 增量订阅&消费组件canal](https://gitcode.net/mirrors/alibaba/canal) -1. [FASTJSON2为下一个十年提供的高性能的JSON库](https://gitcode.net/mirrors/alibaba/fastjson2) -1. [阿里巴巴分布式数据库同步系统otter](https://gitcode.net/mirrors/alibaba/otter) -1. [微服务框架Dubbo](https://gitcode.net/mirrors/alibaba/dubbo) -1. [DataX阿里云DataWorks数据集成的开源版本](https://gitcode.net/mirrors/alibaba/datax) -1. [Sentinel面向云原生微服务的高可用流控防护组件](https://gitcode.net/mirrors/alibaba/sentinel) -1. [应用性能监控系统Skywalking](https://gitcode.net/mirrors/apache/incubator-skywalking) -1. [前端可视化项目Echarts](https://gitcode.net/mirrors/apache/echarts) -1. [数据可视化系统superset](https://gitcode.net/mirrors/apache/superset) -1. [ZooKeeper提供分布式配置服务、同步服务和命名注册](https://gitcode.net/mirrors/apache/zookeeper) -1. [Oceanbase企业级原生分布式数据库](https://gitcode.net/oceanbase/oceanbase) -1. [TDengine一个高效的存储、查询、分析时序大数据的平台](https://gitcode.net/taosdata/tdengine) -1. [MegEngine一个快速、可拓展、易于使用且支持自动求导的深度学习框架](https://gitcode.net/megvii/megengine) -1. [RT-Thread一个集实时操作系统(RTOS)内核、中间件组件的物联网操作系统](https://gitcode.net/rt-thread/rt-thread) -1. [](https://gitcode.net/paddlepaddle/Paddle) -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() -1. []() - diff --git "a/\345\274\200\346\272\220\344\273\273\345\212\2412.md" "b/\345\274\200\346\272\220\344\273\273\345\212\2412.md" deleted file mode 100644 index a9159bc..0000000 --- "a/\345\274\200\346\272\220\344\273\273\345\212\2412.md" +++ /dev/null @@ -1,45 +0,0 @@ -# 任务二:开源项目开发与运行 - -## 一、任务介绍 -1024程序员节结合开源大趋势,开发者可根据自己情况选择业界知名开源项目或自研可开源项目结合GitCode和Cloud IDE进行开发与适配,需要在IDE中能够运行起来为标准获得CSDN定制书包奖励。 - -## 二、任务步骤 - -| 顺序 | 步骤名称 | 步骤描述 | 示意图 | -| ---- | ---- | ---- | ---- | -| 1 | 任务报名 | Fork创建项目,在项目中右上角点击Fork按钮,完成后即报名成功 | ![](https://gitcode.net/gitcode/1024opensource/uploads/8db3366911695d7e1c6851833634deb7/%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_f43ff07c-d546-4dc3-8e00-07fde528d955.png) | -| 2 | 项目导入 | 上传开源项目或自研可开源项目至Fork项目中 | ![](https://gitcode.net/theo789/upload_project/uploads/9280a335d186801ece171b56ee83ad0c/image.png) | -| 3 | IDE打开项目 | 使用Cloud IDE打开项目,Fork项目链接地址中快速启动IDE | ![](https://gitcode.net/theo789/upload_project/uploads/ca739c3c5252cd6f25d0e4d01656afbf/image.png) | -| 4 | IDE中项目运行 | 项目下载完成后,需要下载对应扩展,需要能够运行启动项目 | 前端项目可执行预览,后端项目可展示启动 ![](https://gitcode.net/theo789/upload_project/uploads/4fabe699f2ae7d3870a0562a44ae2505/image.png) | -| 5 | 配置自动运行脚本 | 编写preview.xml文件,能够让项目自动运行 | 可参考 [前端项目2048](https://gitcode.net/cloud-ide/2048) 和 [后端项目CnOCR](https://gitcode.net/cloud-ide/cnocr)| -| 6 | 回传至开源项目 | 完成项目开发后,使用IDE的Git操作完成push代码 | ![](https://gitcode.net/theo789/upload_project/uploads/f29bf06cd2b96e07b67b47873fbe278f/image.png) | -| 7 | 项目完成 | 至此项目已完成开发和运行,即可等待CSDN官方确认奖励 | 希望大家都可以获得CSDN定制书包 ![](https://img-home.csdnimg.cn/images/20221013053300.png) | - -## 三、奖品发放规则 -**奖品发放时间点** -| 次数 | 公布中奖名单 | -| ------ | ------ | -| 第一次 | 2022-10-31 | -| 第二次 | 2022-11-07 | -| 第三次 | 2022-11-14 | - -**活动参与和获奖规则** -- 本项任务,开发者只能获得一次奖励任务。 -- 获奖开发者会通过私信或短信通知用户填写收货地址。 -- 发货时间:活动结束后30个工作日内发货 - -## 四、活动交流 -开源活动官方交流群(仅参与者之间讨论和交流)。扫码进入选手沟通群。活动重要节点通知会在群内第一时间告知,请所有参与者尽量加群。 - -![](https://file.iviewui.com/asd/cloud-ide/cloud-ide-1.png) - -## 五、活动点评 - -### 活动建议 -如果大家对本次活动有建议,可以直接在本项目中提交issue,我们会认真对待每一个评论,非常感谢大家!!! -### 活动点赞👍 -如果大家喜欢本次开源挑战赛活动,可以点击本项目的star,我们会根据大家的star数作为后期是否长期举办的重要依据,非常感谢大家!!! - - - - -- GitLab